我正在使用Hibernate 3.3.1,并且希望在人员和已分配公司之间创建关系。它们应该松散耦合,但我想通过级联来创建一个公司,而不是显式地调用saveOrUpdate(newCompany)。
我定义了以下实体:
class Company
{
@Id
Long companyId;
String name;
}
class Person
{
@Id
Long personId;
String name;
@ManyToOne(cascade = {CascadeType.PERSIST, CascadeType.REFRESH, CascadeType.MERGE})
Company company;
}
在我的数据访问对象里,我正在执行以下操作:
testpers.setCompany (newCompany);
session.saveOrUpdate(testpers);
我遇到了一个异常
org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing: consearch.model.core.Company
当我使用 "cascade = CascadeType.ALL" 注解时,它可以工作,但我不想自动级联删除(例如如果删除一个公司,则不应该同时删除人员)
我想知道为什么之前没有人遇到这个问题。 感谢您的帮助。 Shane