JPA

更新のメモ(2)

Hibernateの実装は、デフォルトでは全ての列に対して更新を行なってしまう。 サンプル package sample; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.EntityTransaction; import java…

Lockのメモ

JPAでは、EntityManager.lock(Object, LockModeType) でLockを取得できるらしい。 LockModeTypeは、WRITEとREADが用意されている。とりあえず、次のようなコードでロックの動作を確認をしてみる。 package sample; import javax.persistence.EntityManager; …

更新のメモ

明示的に更新メソッド(EntityManager.merge())を呼び出さない更新と、更新メソッド(EntityManager.merge())を呼び出す更新の動作確認。 EntytyManager.merge() を使用しない更新(関連テーブル) ← いや削除・・・ package sample; import java.util.Arr…

Cascadeのメモ

CascadeType.PERSIST, CascadeType.REMOVEの確認 MovieのCascadeTypeを次のように変更し、動作確認をしてみた。 cascade=CascadeType.ALL, ↓ cascade={CascadeType.PERSIST, CascadeType.MERGE}, CascadeExSample.class package sample; import javax.persis…

EntityManager.remove()のメモ

削除の動作を確認しようと次のようなコードを実行したところ、ObjectDeletedExceptionという例外がthrowされた。Remove.class package sample; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persi…

ManyToManyのメモ

テーブル create table movie ( id identity, name varchar(50), primary key (id) ); create table actor ( id identity, name varchar(50), primary key (id) ); create table movie_actor ( movie_id bigint, actor_id bigint, primary key (movie_id, ac…

GeneratorType.SEQUENCE の指定方法

次のように指定していたが間違いだった。 @Id(generate=GeneratorType.SEQUENCE, generator="id_seq") public long getId() { ・・・ } 正しくは・・・ @SequenceGenerator(name="SEQ", sequenceName="id_seq") public class UserInfo { ・・・ @Id @Generat…

JPAで複合キーを使う

メモだけ。 package sample.jpa.domain; import javax.persistence.Embeddable; @Embeddable public class EmployeePK implements Serializable { private long companyId; private long employeeId; public EmployeePK() { } public long getCompanyId() { …

JPAにさわる