2012-09-11 35 views
2

要在多個列上指定UniqueConstraint,我使用@Table註釋並指定uniqueConstraint的值。 我還想添加基於此方案空約束:使用eclipselink在實體表上指定NullConstraint

@Entity 
public class Contact{ 
    private PhoneBook phoneBook; 
    private ContactGroup group; 
} 

一個實體可以是在電話簿中,或在一組,但不能同時,由於集團已擁有一個參考電話簿它屬於至。在這種情況下,電話簿和組必須都不爲空,並且都不能設置,一次只能設置一個。

的NetBeans 7.2工作,3.2的GlassFish 2.0的EclipseLink

感謝。

+0

我不認爲你可以在JPA中做到這一點。爲了解決這個問題,我在業務邏輯中檢查了這一點,並在我的數據庫中添加了檢查約束,以便它們不能同時設置 – RNJ

回答

0
import javax.validation.constraints.NotNull; 

@Entity 
public class Contact{ 

    @NotNull 
    private PhoneBook phoneBook; 

    @NotNull 
    private ContactGroup group; 
} 

應該工作:)

編輯:

對不起,現在我看你寫的交叉驗證,可能你必須寫自己的驗證。

0

根據條件,我會簡單地將ConstraintViolationException丟在設置者phoneBookgroup中。

相關問題