1

处理用户对象和首选项对象之间的关系。每个用户都应该有一个与之关联的偏好对象。即用户和偏好之间的一对一关系。我还想强制用户不能有空首选项。

我的班级结构。

public class User{
...
    @OneToOne(mappedBy="user")
    public Preference preference;
...
}
public class Preference{
    ...
    @OneToOne(fetch=FetchType.LAZY, cascade=CascadeType.ALL) 
    @JoinColumn(name="userid")
    public User user;
    ...
 }

当 JPA 生成表时,外键列在 Preference 表中。在网上阅读,这是首选而不是在 User 表中具有外键。

注意:我已将其设为双向关系。

尽管这生成了正确的表,但我想在 db 层强制用户应该始终具有非空首选项。我知道我可以在应用层做到这一点,但是(如果可能的话)数据库层!有没有一种方法可以实现这一点,而无需让用户成为拥有方并偏好相反的一方。

4

0 回答 0