簡體   English   中英

Hibernate manyToMany只返回一個元素

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM