2012-04-19 63 views
1

我有映射一對多,多對一兩個班,我得到異常:實體一對多..annotation例外

org.hibernate.AnnotationException:引用的mappedBy的未知目標實體屬性:在entity_package entity_package.TicketEntity.ownerEntity。 UserEntity.ownedTickets

這裏是代碼:

公共類UserEntity實現Serializable {

@OneToMany(mappedBy="ownerEntity") 
public List<TicketEntity> getOwnedTickets() { 
    return tickets; 
} 
public void setOwnedTickets(List<TicketEntity> tickets) { 
    this.tickets = tickets; 
} 

和...

公共類TicketEntity實現Serializable {

private UserEntity ownerEntity; 

@ManyToOne 
@JoinColumn(name="owner_id") 
public UserEntity getOwner() { 
    return ownerEntity; 
} 
public void setOwner(UserEntity owner) { 
    this.ownerEntity = owner; 
} 

什麼錯?

回答

4

屬性名稱爲owner,由註釋的getter定義。使用方法:

@OneToMany(mappedBy="owner") 
public List<TicketEntity> getOwnedTickets() { 
+0

感謝作品=)但爲什麼?我的對象被稱爲ownerEntity,而不是所有者......或者我應該使用getter定義的東西? – aybekbuka 2012-04-19 08:43:51

+0

太棒了!所以你可以接受答案(我的答案附近的V按鈕)。歡迎來到Stack! – yair 2012-04-19 08:45:05

+0

哦,這是因爲Hibernate使用註釋的getXXX getter中的XXX作爲屬性名稱。它可以讓你選擇你想要的實際類字段名稱,或者甚至根據某些條件做一些生成「UserEntity」的邏輯。 – yair 2012-04-19 08:48:09