2017-04-26 68 views
1

我有兩種類型:資源和用戶之間有一對一的關係。無法保存OneToOne關係

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

當我用用戶設置創建資源對象時,一切都是正確的。具有正確用戶的資源被創建。

但是當我嘗試使用資源集創建用戶時,數據庫上的用戶資源不會更新。

任何人都可以幫到我嗎?我究竟做錯了什麼?

回答

1

您需要設置在兩個實體雙方的關聯關係:

Resource resource = ...exiting resource... 

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

resource.setUser(user); 
+0

我想我將不得不節約資源上ResourceRepository。當我保存用戶對象時,是否有可能會在用戶上更新資源? (一些註釋還是別的?) –