[英]Hibernate manyToMany only returns one element
我想為使用Hibernate的用戶閱讀幾個Elements。
這些是我在數據庫中的表: 這是我的用戶類的代碼:
@Entity
@Table(name="users")
public class User
{
@Id
@GeneratedValue
@Column(name="user_id")
private int id;
@ManyToMany(fetch=FetchType.EAGER, cascade = CascadeType.ALL)
@JoinTable(name="mapping",
joinColumns=@JoinColumn(name="user_id"),
inverseJoinColumns=@JoinColumn(name="element_id")
)
private Set<Element> elements;
它是單向映射。 所以我的元素類中沒有'users'-field。
如果我嘗試讀取用戶,我只會獲得映射的第一個元素。 插入和更新工作正常。
有任何想法嗎?? 謝謝!
哦,天哪,我太蠢了! 在我用來加載我的實體的dao中,我有以下限制:
criteria.setMaxResults(1);
我想只從數據庫中加載一個實體。 我不知道hibernate是如何工作的。 現在,我想通了,這個限制導致hibernate只獲得連接表的一行。 所以我的實體列表中只有一個元素。
刪除此單行修復了我的問題! 現在,dao的查詢返回多個相同對象的列表。 我只需要選擇第一個。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.