我需要一个与另一个实体具有一对一关系的实体的简单休眠示例,它们都共享主键。我只需要保存自动生成其主键的主实体,而其他依赖实体会自动级联保存。例如:
public class Person {
@Id
@GeneratedValue
@Column(name = "Id")
private Long id;
@OneToOne(mappedBy = "person", cascade = CascadeType.ALL)
private Name name;
}
public class Name {
@Id
@Column(name = "Id")
private Long id;
@OneToOne
@PrimaryKeyJoinColumn(name = "Id")
private Person person;
@Column
private String first;
@Column
private String last;
}
Person person = new Person();
person.setName(new Name("first", "last"));
session.save(person);
我们能够轻松设置这两个实体。但是我们必须先保存人,然后通过hibernate保存名称。我们只需要救人,这一点非常重要。