gpt4 book ai didi

java - 使用延迟加载时 Hibernate List 为空,但在热切加载时它有结果

转载 作者:行者123 更新时间:2023-11-29 06:46:10 24 4
gpt4 key购买 nike

我有两个实体,一个 User 和一个 Place witch 绑定(bind)了多对多关联。当我尝试通过 getter 方法获取给定用户的所有位置时,返回一个空列表,但用户绑定(bind)到数据库中的位置,如果我将默认获取策略更改为急切,我可以看到所有位置美好的。我正在使用 MySQL 来保持持久性。使用的注解是:对于用户实体:

@ManyToMany
@JoinTable(name= "USER_PLACE",
joinColumns = {@JoinColumn(name="USER_ID")},
inverseJoinColumns = {@JoinColumn(name="PLACE_ID")})
private List<Place> places = new ArrayList<Place>();

对于 Place 实体:

@ManyToMany(mappedBy = "places")
private List<User> users = new ArrayList<User>(0);

这可能是什么原因造成的?

最佳答案

对我来说,这看起来像是您的域模型中的映射问题。提供的实体是否也映射到其他地方?您可能会遇到与其他表的疯狂连接。你能提供所有相关实体吗?此外,Hibernate 为 User.getPlaces() 生成的 SQL 语句也会有所帮助。

关于java - 使用延迟加载时 Hibernate List 为空,但在热切加载时它有结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18602038/

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