我想這三類地圖:如何在Hibernate中映射一個合格的關聯?
而且我得到這個錯誤:
Caused by: org.hibernate.AnnotationException: @OneToOne or @ManyToOne on com.redex.model.Photo.labelledIn references an unknown entity: java.util.Map
我可以映射在我的數據庫這個限定關聯?如果我不能,我怎樣才能以不同的方式做到這一點?
我想這三類地圖:如何在Hibernate中映射一個合格的關聯?
而且我得到這個錯誤:
Caused by: org.hibernate.AnnotationException: @OneToOne or @ManyToOne on com.redex.model.Photo.labelledIn references an unknown entity: java.util.Map
我可以映射在我的數據庫這個限定關聯?如果我不能,我怎樣才能以不同的方式做到這一點?
使用
@OneToMany
private Map<User, Coordinate> labelledIn;
代替@ManyToOne
。正如@JB Nizet所說,與集合建立多對一關係毫無意義。
欲瞭解更多的細節看看這裏:2.2.5.3.4. Indexed collections (List, Map)。
這種關係只能引用其他JPA實體。如果你想one user -> many photos
和one photo -> one user
,你一定要試試這樣的:
class User {
@OneToMany
private Set<Photo> photos;
}
class Photo {
@ManyToOne
private User user;
}
地圖包含多個值。這是一個集合。在地圖上有一個ManyToOne是沒有意義的。 –
OneToMany ... – sp00m