PrimaryKeyJoinColumn
ParkingテーブルのIDがEmployeeテーブルのIDに対してFK張っている場合(かつ双方向)を確認
Employeeクラスでこんな宣言。
@OneToOne @PrimaryKeyJoinColumn private Employee employee;
Employeeクラスはこんな宣言。
@OneToOne(mappedBy="employee") private Parking parking;
んで、実行するとこんな感じ。
EntityManagerFactory emf = Persistence.createEntityManagerFactory("default", new java.util.HashMap()); EntityManager em = emf.createEntityManager(); Employee emp = em.find(Employee.class, 1); Parking parking = emp.getParking(); System.out.println(emp==parking.getEmployee()); em.close(); emf.close();
ちゃんとtrueで出力されましたとさ。(当然ながら、parking.getEmployee()によるSQLは発行されない)
今日のH2コマンド
ALTER TABLE EMPLOYEE DROP CONSTRAINT FK_PARKING ALTER TABLE EMPLOYEE DROP COLUMN PARKKING_ID