使用Hibernate加入表

时间:2010-07-29 02:24:18

标签: hibernate

我正在创建一个应用程序,人们可以发布评论或文章,用户可以评价文章是否对他们有帮助。

我目前有两个实体看起来像这样(省略了非相关细节):

Article.java

@Entity
Article

@Id
private int article_id

@ManyToOne
@JoinColumn(name="user_id")
private User user;

User.java
@Entity
User 

@Id
private int user_id

我想知道一个用户是否对某篇文章进行了“投票”有两个原因,1。不让他们投票两次,2。建议其他可能有帮助的文章。

我在每个对象中尝试了@OneToMany关系,并在文章和用户中使用Cascade选项进行每个引用来更新我称为User_Article的对象(只有两列,article_id和user_id)但是,当级联发生时,我一直得到LazyInitilizationException

我正在寻找任何hibernate专家来指导这个问题的实现和架构。

1 个答案:

答案 0 :(得分:1)

尝试

@OneToMany(fetch=FetchType.EAGER)

但是,避免急切加载大型集合是件好事。这就是为什么让它变得懒惰,只有在你确定需要时才使用Hibernate.initialize(..)初始化它。或者使用如下的HQL查询:

SELECT entity FROM Entity entity JOIN entity.collection