1

我两个实体一个用户和一个地方女巫与多对多关联绑定。当我尝试使用 getter 方法获取给定用户的所有位置时,将返回一个空列表,但用户被绑定到数据库中的位置,如果我将默认获取策略更改为渴望,我可以看到所有位置美好的。我正在使用 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);

这可能是什么原因?

4

1 回答 1

2

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

于 2013-09-04T08:04:13.623 回答