我有一个关于hibernate的问题。
我想保存一个分离对象的小图:
session.save(new City(1));
Peron p = new Person(new City(1), new Street(2));
session.save(p);
Hibernate告诉我城市是短暂的,但我做到了:
session.refresh(city);
session.refresh(street);
session.update(p);
有什么想法吗?
发布于 2010-10-09 07:43:45
或者像这样做:
City city = new City(1);
session.save(city);
Street street = new Street(2);
session.save(street);
Peron p = new Person(city, street);
session.save(p);
session.flush();
或者设置级联来级联save
操作。例如,使用注释:
@Entity
public class Person {
@Id @GeneratedValue
private Long id;
@ManyToOne(cascade = CascadeType.PERSIST) // or ALL to cascade all operations
private City city;
// ...
}
然后代码变成:
City city = new City(1);
Street street = new Street(2);
Person p = new Person(city, street);
session.save(p);
session.flush();
参考文献
JPA注释参考指南
https://stackoverflow.com/questions/3895916
复制