【问题标题】:Can't save OneToOne relation无法保存 OneToOne 关系
【发布时间】:2017-04-26 09:35:42
【问题描述】:

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

@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;
}

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

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

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

【问题讨论】:

    标签: java hibernate persistence


    【解决方案1】:

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

    Resource resource = ...exiting resource...
    
    User user = new User();
    user.setResource(resource);
    
    resource.setUser(user);
    

    【讨论】:

    • 我想我必须在 ResourceRepository 上保存资源。当我保存用户对象时,是否有可能在用户上更新该资源? (一些注释或其他东西?)
    猜你喜欢
    • 1970-01-01
    • 2020-10-18
    • 1970-01-01
    • 1970-01-01
    • 2021-06-04
    • 2021-03-31
    • 1970-01-01
    • 1970-01-01
    • 2019-01-27
    相关资源
    最近更新 更多