gpt4 book ai didi

java - Hibernate manyToMany 只返回一个元素

转载 作者:搜寻专家 更新时间:2023-11-01 03:23:01 25 4
gpt4 key购买 nike

我想为使用 Hibernate 的用户阅读几个元素。

这些是我在数据库中的表: enter image description here这是我的用户类的代码:

@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;

这是一个单向映射。所以我的元素类中没有“用户”字段。

如果我尝试读取用户,我只会得到映射的第一个元素。插入和更新工作正常。

有什么想法吗?谢谢!

最佳答案

我他妈的太蠢了!在我用来加载我的实体的 dao 中,我有以下限制:

criteria.setMaxResults(1);

我只想从数据库中加载一个实体。我不知道 hibernate 是如何工作的。现在,我想通了,这个限制导致 hibernate 只获得连接表的一行。所以我的实体列表中只有一个元素。

删除这一行解决了我的问题!现在,dao 的查询返回多个相同对象的列表。我只需要选择第一个。

关于java - Hibernate manyToMany 只返回一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24121020/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com