我有两个类:User和UserPicture,它们之间存在着一对一的关系。
public class User {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name="id", nullable = false, unique = true)
private int id;
private String firstname;
private String lastname;
@OneToOne
@JoinColumn(name = "picture") //field named "picture" in the database
private UserPicture userPicture;
..
}
public class UserPicture {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name="id", nullable = false, unique = true)
private int id;
private Blob image;
@OneToOne
@JoinColumn(name = "user")
User user;
'UserPicture'中的'user'会被加载,但是在'User'中的'userPicture'不会被加载 - 我做错了什么?
编辑 必须补充说明,我只是创建了一个UserPicture并将其插入(使用现有的userId) - 也许我需要级联加载'UserPicture'中的'user'吗?
User
和UserPicture
关联起来所需做的所有事情,就是创建一个UserPicture
对象,调用setUser
方法将其关联到User
上,最后将其持久化到数据库中。 - Pigueiraspicture
字段。你只需要在UserPicture
表中引用user
即可。如果你从数据库中恢复一个用户,Hibernate 将会为你加载UserPicture
属性,因为这是一对一的关系。希望现在清楚了 :-) - Pigueiras