JPA使用中に発生した問題
2840 ワード
MySQL結合プロセスの問題
Hibernateネーミングポリシーテーブル名の変更
Spring Spring Data JPAエラー:Page 1 of 1 containing UNKNOWN instances
JPA Pageableクエリーインデックスは0から始まり、フロントエンドからpage値がデフォルトで1になります.
最初はこの問題しかないと思っていたが、後で間違って報告し、コードをチェックした後、自分が愚かで死んだことに気づいた.
前のコード
変更後
日付変換JSON形式の問題はアプリケーションにあります.properties構成グローバル設定を変更し、すべてのDateタイプに対して有効にする 指定タイプに注釈 を有効にする.
どちらの方法もあり、注釈の優先度が高い.
application.properties構成
注記の設定
long型のtimestampは日付を表します.
文字列は日付を表します.
desc予約ワードの問題
シーン:エンティティクラスを新規作成し、descフィールドが表示され、保存中に
解決方法:https://stackoverflow.com/questions/28946567/sql-error-1064-sqlstate-42000-while-creating-new-entity
フィールド名の変更_
https://etherealbits.com/2012/12/debunking-the-myths-of-rpc-rest/
Hibernateネーミングポリシーテーブル名の変更
Spring Spring Data JPAエラー:Page 1 of 1 containing UNKNOWN instances
JPA Pageableクエリーインデックスは0から始まり、フロントエンドからpage値がデフォルトで1になります.
Page taskPage=workTaskService.queryTaskPage(taskName,scheStrategy,taskStatus,
new PageRequest(page-1,limit));
最初はこの問題しかないと思っていたが、後で間違って報告し、コードをチェックした後、自分が愚かで死んだことに気づいた.
前のコード
@Query("select new com.ustc.inspectweb.entity.ro.WorkTaskMonitorRo(" +
"a.workTaskId,a.devType,a.endDate,a.taskName,a.taskDesc," +
"a.startDate,a.taskStatus,a.scheStrategy,a.nextExecuteTime) " +
"from WorkTaskEntity a where a.isDelete=0 " +
" and (a.taskName is null or a.taskName like concat('%',:taskName,'%'))" +
" and (a.scheStrategy is null or a.scheStrategy=:scheStrategy )" +
" and (a.taskStatus is null or a.taskStatus=:taskStatus)" +
" order by a.startDate desc")
変更後
@Query("select new com.ustc.inspectweb.entity.ro.WorkTaskMonitorRo(" +
"a.workTaskId,a.devType,a.endDate,a.taskName,a.taskDesc," +
"a.startDate,a.taskStatus,a.scheStrategy,a.nextExecuteTime) " +
"from WorkTaskEntity a where a.isDelete=0 " +
" and (:taskName is null or a.taskName like concat('%',:taskName,'%'))" +
" and (:scheStrategy is null or a.scheStrategy=:scheStrategy )" +
" and (:taskStatus is null or a.taskStatus=:taskStatus)" +
" order by a.startDate desc")
taskName
がnull
に転送されます日付変換JSON形式の問題
@RestController
DateタイプがJSONに変換された場合、フォーマットが正しくないには2つの解決策があります.@JsonFormat
を追加し、注釈された属性に対してのみどちらの方法もあり、注釈の優先度が高い.
application.properties構成
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
spring.jackson.time-zone=GMT+8
spring.jackson.serialization.write-dates-as-timestamps=false # true long
注記の設定
long型のtimestampは日付を表します.
@JsonFormat(shape = JsonFormat.Shape.NUMBER)
文字列は日付を表します.
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
desc予約ワードの問題
シーン:エンティティクラスを新規作成し、descフィールドが表示され、保存中に
SQL Error: 1064, SQLState: 42000
とエラーが発生しました.解決方法:https://stackoverflow.com/questions/28946567/sql-error-1064-sqlstate-42000-while-creating-new-entity
フィールド名の変更_
https://etherealbits.com/2012/12/debunking-the-myths-of-rpc-rest/