2016-08-30 83 views
1

我是JPA的初學者。所以我使用數據庫第一策略創建了我的第一個項目,例如我手工定義我的數據庫模式,然後使用JPA來訪問它。JPA和原生FK約束

當涉及到關係我用這個:

@OneToMany(mappedBy = "action", cascade = CascadeType.ALL, orphanRemoval = true) 

所以,JPA照顧缺失(CascadeType.ALLorphanRemoval

現在,我就在想,如果它是添加foreign key constraints一個好主意數據庫模式呢? (目前,我沒有它):

ALTER TABLE T_FOO ADD CONSTRAINT t_fk foreign key (BAR_ID) REFERENCES T_BAR(ID) on delete cascade

你覺得會是什麼是一個好主意還是將收益率與JPA的問題?

+0

我猜你的JPA提供程序會讓你感到困惑,因爲你告訴它級聯,並且記錄在其上下文之外消失 –

+0

如果你希望數據庫處理級聯刪除而不是應用程序,你需要讓JPA provider知道。有關如何在EclipseLink中執行此操作,請參閱http://www.eclipse.org/eclipselink/documentation/2.5/jpa/extensions/a_cascadeondelete.htm – Chris

回答

0

壞主意。您應該使用主鍵,外鍵和正確的數據類型來創建數據庫模式。而已。