处理用户对象和首选项对象之间的关系。每个用户都应该有一个与之关联的偏好对象。即用户和偏好之间的一对一关系。我还想强制用户不能有空首选项。
我的班级结构。
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 层强制用户应该始终具有非空首选项。我知道我可以在应用层做到这一点,但是(如果可能的话)数据库层!有没有一种方法可以实现这一点,而无需让用户成为拥有方并偏好相反的一方。