0
我有一種情況,我想引用更新任務對象的用戶的名字和姓氏。這應該是一個直接的檢索,但Hibernate沒有像我期望的那樣連接關聯。以下是對象定義:相關輔助表上的Hibernate MappingException
Task Object:
@Entity
@Table(name = "TASKS")
public class TaskBean {
...
@ManyToOne(targetEntity = UserBean.class, optional=true)
@JoinColumn(name="MODIFIED_BY", referencedColumnName="EMPLOYEE_ID")
public User getUser()
...
User Object:
@Entity
@Table(name = "USER_")
@SecondaryTable(name="LOCAL_USER",
pkJoinColumns={
@PrimaryKeyJoinColumn(name="PORTAL_USER_ID", referencedColumnName="USERID")})
public class UserBean {
private BigDecimal userId; // USERID
private String firstName; // FIRSTNAME
private String lastName; // LASTNAME
private String employeeId; // EMPLOYEE_ID
....
@Column(name="EMPLOYEE_ID", table="LOCAL_USER", updatable=false, insertable=false)
public String getEmployeeId() {
return employeeId;
}
問題出在TaskBean上的@ManyToOne定義。當我試圖運行對TaskBeans我得到以下異常的單元測試:
org.hibernate.MappingException:無法找到邏輯名稱列:在org.hibernate.mapping.Table(USER_)EMPLOYEE_ID和其相關的超類和副表
這對我來說沒有意義,因爲我明確定義了UserBean中的EMPLOYEE_ID字段。由於該字段來自輔助表格,是不是可以這樣做?錯誤消息使得它聽起來像這是一件合理的事情。
有什麼建議嗎?
什麼是你正在使用Hibernate的版本? – 2012-02-06 19:42:53
Hibernate Core 3.6.9.Final,Hibernate Commons Annotations 3.2.0.Final。我試着將Commons Annotations升級到最新版本(3.3.0),但這並沒有幫助。 – JJensL 2012-02-06 20:10:11