2011-10-20 80 views
3

我使用JPA/EclipseLink的,它引發此異常JPA造成麻煩本身

產生的原因:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: 未知列「名」在「場清單」

下面是生成的查詢:

電話:SELECT ID,DTYPE,全名,名稱,代碼從一個人WHERE ((帳戶=)和(DTYPE =? ))結合=> [1,僱員]其中

@Entity 
@Table(name = "PERSON") 
public class Person 
     implements Serializable { 
    .... 

    @Column(name = "fullname", nullable = false) 
    public String getFullName() { 
     return this.fullName; 
    } 

    public void setFullName(String fullName) { 
     this.fullName = fullName; 
    } 
    .... 
} 

@Entity 
@Table(name="EMPLOYEE") 
@PrimaryKeyJoinColumn(name="personId") 
public class Employee 
     extends Person 
     implements Serializable { 

    ....  

    @Column(name="code") 
    public String getCode() { 
     return code; 
    } 

    public void setCode(String code) { 
     this.code = code; 
    } 
} 

我沒有上既不PERSON表也不EMPLOYEENAME柱,它爲什麼隨便那列添加到查詢並導致自己(和我)的問題?

--- EDITED ----- 我沒有任何name財產或成員或任PERSON也不EMPLOYEE實體相似字的東西。

+0

你在'Person'實體中有'name'屬性嗎?如果是,那麼你可以使用'@ Transient'註解。 –

回答

2

NAME看起來像是默認的(因爲您似乎將字段名稱設置爲小寫),因此請檢查Person類中的getName/setName方法。你使用的是orm.xml文件嗎?

如果仍然無法找到問題,請將EclipseLink日誌記錄設置爲Finest: ,並在預部署/部署階段檢查日誌。 Person和Employee類的EclipseLink處理應該顯示爲什麼它確定應該有一個NAME字段。

+0

這就是我要找的。 「最美好的」拯救了我!謝謝! – hirikarate