OO模型与关系模型之间的JPA关系

时间:2013-10-29 20:17:27

标签: java sql jpa

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

我的课程结构。

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表中。在网上阅读时,首选的是在用户表中使用外键。

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

虽然这会生成正确的表,但我想在db层中强制执行User应始终具有非null的首选项。我知道我可以在应用程序层中执行此操作,但(如果可能)db层!有没有一种方法可以实现这一目标,而不是让用户拥有所有权,而偏好是反面。

0 个答案:

没有答案