java - 无法保存 OneToOne 关系

标签 java hibernate persistence

我有两种类型:资源和用户,它们之间具有一对一的关系。

@Entity
@Table( name = "RESOURCE" )
public class Resource
{
    //...somecode...

    @OneToOne( fetch = FetchType.LAZY )
    private User user;
}


@Entity
@Table( name = "USERS" )
public class User
{

    @Id
    @GeneratedValue( generator = "USER_ID_SEQ" )
    @GenericGenerator( name = "USER_ID_SEQ", strategy = "sequence", parameters = @Parameter( name = "sequence", value = "SEQ_USER_ID" ) )
    @Column( name = "USER_ID" )
    private long id;

    //...somecode...

    @OneToOne( mappedBy = "user", cascade = CascadeType.ALL )
    private Resource resource;
}

当我使用用户设置创建资源对象时,一切都是正确的。创建具有正确用户的资源。

但是当我尝试使用资源集创建用户时,数据库上的用户资源不会更新。

有人可以帮助我吗?我做错了什么?

最佳答案

需要在实体双方设置关联:

Resource resource = ...exiting resource...

User user = new User();
user.setResource(resource);

resource.setUser(user);

关于java - 无法保存 OneToOne 关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43630354/

相关文章:

java - JPA:有什么方法可以向约束名称添加全局前缀吗?

java - 未找到类异常

java - 如何使用 JPA 2、Hibernate 3.5 处理选择字段

java - JPA:合并并持久化,捕获 ConstraintViolationException

java - 哪个相当于 javaFX 中的 JLayeredPane?

java - 在 Hibernate 中使用原语或包装类?

java - 为什么这个 dao 类不 Autowiring ?

java - 如果语句在操作监听器中使用时不起作用

java - 重新附加父实体时删除子实体

java - 存储 Location 对象的好方法是什么?