2013-03-05 167 views
3

我有具有兩個字段JPA一個字段依賴於另一個字段中相同的表

@Column(name = "transactionDate", nullable = true) 
private Date transactionDate; 

@Column(name = "nextTransactionDate", nullable = true) 
private Date nextTransactionDate 

-- 

兩個字段可以是空一類。但是,如果transactionDate不爲null,則nextTransactionDate不能爲null。我怎樣才能使用JPA實現上述領域之間的關係?任何代碼片段,鏈接將不勝感激。

注意:我正在使用JPA而不是Hibernate。

+2

你需要使用一個bean驗證API來做到這一點,看看[這個](http://stackoverflow.com/questions/9804009/jsr-303-bean-validation-annotate-multiple-fields) – 2013-03-05 14:22:57

+1

@ bmorris591它只是對象或應用程序級別驗證而不是數據庫約束。 – Rafiq 2013-03-05 16:24:44

回答

2

你可以在你的對象模型或應用程序中驗證它,而不是通過數據庫約束。您也可以通過自己的DDL腳本在數據庫中定義自己的檢查約束。

+0

我不知道我的老闆會用哪個數據庫。所以我想要一個概括形式,以便我可以從一個數據庫切換到另一個數據庫。 – Rafiq 2013-03-05 16:14:58

0

最好在DAO或服務層中編寫biz邏輯,而不是在ORM級別定義它。 JPA和ORM工具只是用來解決持久性問題而不是邏輯問題。

相關問題