関連エンティティのfetch方法を指定する設定値をデフォルト値から変更した方がよいケースの具体例について。
関連エンティティのfetch方法を指定する設定値をデフォルト値から変更した方がよいケースの具体例について。
現在、JavaEEで作っているアプリケーションに画面を追加する事になり、それまではJPAのJPQLを使ってのcreateQueryで済んでいたのですが、今回はGROUP BYとかUNIONとかでSQLを作る必要があり、JPQLでは無理そうなのでcreateNativeQueryで実装する事にしました。 で、最初はcreateQueryをcreateNativeQueryに置き換えてSQL文を噛ませばいいかなと思っていたのですが、どうやら結構違うらしい。。 一つ目の違いは、createQueryならテーブル定義に沿って作ったEntityに直接入れる事が出来ますが、ちょっと複雑なSQLだと問い合わせ結果に一致したEntityを作る事自体が難しい。 二つ目はバインド変数の違い。createQueryならバインド変数は[:PARAM]のように文字として指定して下記のように変数をセットして結果を取得
こんにちわ、みけです。 最近、ずっとJava8のDate and Time APIをいじってきましたが、 多分、これでおわりです。 今日は新APIと古いAPIの相互変換についてです。 java.time.Instant 新APIと古いAPIでの相互変換はjava.time.Instantを経由して行います。 @RunWith(Enclosed.class) public class DateTimeTest { //ゾーンなしフォーマット private static final DateTimeFormatter withoutZone = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss"); //ゾーンつきフォーマット private static final DateTimeFormatter withZone = DateTimeF
はじめに JPAでのロックの基本は楽観的ロック(Optimisstic Loc)です。楽観的ロックは、アノテーションを使って、すべてのエンティティにあらかじめ適用しておくことができます。 楽観的ロックでは、ロックが有効になるのは、トランザクションの最後、つまり、データがコミットされる時です。したがって、トランザクションの途中では、他のトランザクションが同じデータを読み込んだり、あるいは更新してコミットしてしまうこともあり得ます。 そこで、コミットする直前、同じレコードを他のトランザクションが更新していないかどうか調べます。ここで何もなければ、それでOK、データをコミットして終わりです。 しかし、運が悪ければ、他のトランザクションがすでにデータを更新したことが分かり、処理を継続できなくなります。OptimisticLockExceptionという例外を投げてトランザクションを失敗させ、変更は
少し前に検証したものだが、改めて整理。 テーブルAとテーブルBを結合した結果を取得したい場合に、普通にSpring DataのRepositoryを作って@Query のメソッドを定義してもうまくいかない。 例えば以下のようなクエリは表現できない。
テーブル構成 CDとアーティストが多対多で紐づているとします。 ER図で下記のようになっているとします。 ソース CDのエンティティ @Entity @Table(name = "cd") public class Cd implements Serializable { private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Basic(optional = false) @Column(name = "id") @Getter @Setter private Integer id; @Getter @Setter @Column(name = "title") private String title; @Getter @Sette
「永続化」の意味 EntityManagerのメソッドで操作したエンティティは、いったんEntityManagerの永続性コンテキストに配置されます。例えば、メソッドcreateでエンティティに対する「新規登録」の操作を行っても、その時点ではデータベースへの書き込みは行われません。実際には、「このエンティティは、データベースに新規登録するデータである」というマークを付けて永続性コンテキストに配置されるだけです。これがオブジェクトの「永続化」であり、EntityManagerによってデータベースへの格納が可能になった状態であることを意味しているのです。 JSFとの親和性が高いJPA JPAはJava EEの一部であることから、Java EEの他のAPIと容易に組み合わせて使えるよう工夫されています。例えば、JSF(JavaServer Faces)を使用すると、JPAの扱いがとても簡単になり
Abstract This chapter includes details of the JPA repository implementation. The JPA module of Spring Data contains a custom namespace that allows defining repository beans. It also contains certain features and element attributes that are special to JPA. Generally the JPA repositories can be set up using the repositories element: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.spr
あなたにとって重要なトピックや同僚の最新情報を入手しましょう最新の洞察とトレンドに関する最新情報を即座に受け取りましょう。 継続的な学習のために、無料のリソースに手軽にアクセスしましょうミニブック、トランスクリプト付き動画、およびトレーニング教材。 記事を保存して、いつでも読むことができます記事をブックマークして、準備ができたらいつでも読めます。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く