2013-08-04 85 views
2

我是Hibernate的初學者。線程「main」中的異常org.hibernate.MappingException:實體映射中的重複列

我收到此錯誤信息,無法弄清楚什麼是錯的:在線程「主要」 org.hibernate.MappingException

例外:在映射重複列實體:com.hibernate.aris。認購柱:城市(應插入=「假」更新映射=「假」)」

我讀的地方,一個人的HBM文件中設置屬性‘逆’,但我不知道真的知道那意味着什麼。

任何意見將不勝感激?

嵌入類調用地址

@Embeddable 
public class Address { 
    @Column (name = "STREET_NAME") 
    private String street; 

    @Column (name = "CITY_NAME") 
    private String city; 

    @Column (name = "POST_CODE") 
    private String postcode; 

    public String getStreet() { 
     return street; 
    } 
    public void setStreet(String street) { 
     this.street = street; 
    } 
    public String getCity() { 
     return city; 
    } 
    public void setCity(String city) { 
     this.city = city; 
    } 
    public String getPostcode() { 
     return postcode; 
    } 
    public void setPostcode(String postcode) { 
     this.postcode = postcode; 
    } 
} 

訂閱類

@Entity 
@Table(name = "Subscriberstbl") 
public class Subscribers { 

    private int subID; 
    private String firstname; 
    private String lastname; 

    @Embedded 
    @AttributeOverrides({ 
    @AttributeOverride(name ="street", column = @Column(name="HOME_STREET_NAME")), 
    @AttributeOverride(name = "city", column = @Column(name="HOME_CITY_NAME")), 
    @AttributeOverride(name = "postcode", column = @Column(name="HOME_POST_CODE"))}) 
    private Address homeaddress; 

    @Embedded 
    private Address officeaddress; 

    //Getters and Setters 
    public String getFirstname() { 
     return firstname; 
    } 

    public void setFirstname(String firstname) { 
     this.firstname = firstname; 
    } 

    public String getLastname() { 
     return lastname; 
    } 

    public void setLastname(String lastname) { 
     this.lastname = lastname; 
    } 

    @Id 
    @GeneratedValue 
    public int getSubID() { 
     return subID; 
    } 
    public void setSubID(int subID) { 
     this.subID = subID; 
    } 

    public Address getOfficeAddress() { 
     return officeaddress; 
    } 

    public void setOfficeAddress(Address address) { 
     this.officeaddress = address; 
    } 

    public Address getHomeaddress() { 
     return homeaddress; 
    } 

    public void setHomeaddress(Address homeaddress) { 
     this.homeaddress = homeaddress; 
    } 

} 

回答

3

你被FIELD(現場註釋)和性質(上accessorss註釋)和財產混合接入是贏家如此@AttributesOverride被忽略。
嘗試從訪問者向字段類別移動@Id @GeneratedValue

+0

是的。有效。謝謝。 – cloudviz

+0

歡迎您。請接受答案。 –

+0

「歡迎來到SO。如果下面的答案之一解決了你的問題,你應該接受它(點擊相應答案旁邊的複選標記),這樣做有兩件事,它讓每個人都知道你的問題已經解決,幫助你獲得援助的人,請參閱這裏以獲得完整的解釋「 –

相關問題