关于网友提出的“ Hibernate多对多单向出问题了”问题疑问,本网通过在网上对“ Hibernate多对多单向出问题了”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: Hibernate多对多单向出问题了
描述: 一个食品类,一个客户类。
多对多的关系。。
我在客户类中有个食品集合
食品类那边没有客户类对象。
多对多关系所以有个中间表: 评论表
@ManyToMany(fetch=FetchType.LAZY)
@JoinTable(name="t_remark",
joinColumns={@JoinColumn(name="customer_id")},
inverseJoinColumns={@JoinColumn(name="food_id")})
public Set getRemarks() {
return remarks;
}
这是客户类中的食品集合对应的set方法,利用注解生成了中间表
我执行了一个hql语句查询出客户表中的所有数据
出现了failed to lazily initialize a collection of role: com.resturant.model.Customer.remarks, no session or session was closed 错误。
我把上面的lazy改成了eager就可以执行了。 但是这样每查出一个客户。
就会在评论表中根据这个客户查出和他有关系的所有的食品类。
这样效率很低。。
有什么办法可以解决吗?
我只想查出所有的客户,不查出食品类。 若想查出食品类,可根据客户id查询。
查食品的时候也只查出所有的食品,不查出客户。
以上介绍了“ Hibernate多对多单向出问题了”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/2948724.html