雖然我嘗試保存頂級實體(使用JPA),我是否需要從數據庫剛剛獲取ManyToOne映射的實體,並設置它或不能我只是設置Id ?的多對一映射的實體,並保存頂級實體 在沒有得到新的實體,它拋出:org.hibernate.TransientObjectException:我們正在使用Hibernate - ManyToOne - 保存 - org.hibernate.TransientObjectException:
表結構:
DEPARTMENT(DEPARTMENT_ID BIGINT, NAME VARCHAR(128))
EMPLOYEE(EMPLOYEE_ID BIGINT, NAME VARCHAR(128), DEPARTMENT_ID BIGINT)
Entities:
class Department
{
@Id
Long departmentId;
String name;
@Version
Long versionNumber;
}
class Employee
{
@Id
Long employeeId;
String name;
@ManyToOne
Department department;
@Version
Long versionNumber
}
(兩個類具有setter和getter所有字段和默認構造函數的方法,以主鍵作爲參數的構造函數) 現在,如果我想用departmentId保存員工(比如說100),是否需要先取得部門記錄,然後將其設置在員工中?
我不能直接創建Department實例(通過設置主鍵(departmentId))並在Employee中設置Department實例並保存Employee? 當我這樣做時,它拋出org.hibernate.TransientObjectException。
關於最佳實踐的任何建議都需要遵循嗎?如果要保存父不保存每個孩子
預先感謝您
我不知道誰降低了這個?他們可以辯解嗎? – 2011-06-07 22:58:19