【发布时间】:2014-07-22 12:50:05
【问题描述】:
我有一个名为 User 的实体类,其中包含数据库的 OneToMany 列:
@Setter
@OneToMany(cascade = CascadeType.ALL, mappedBy = "user")
@JoinTable(
name = "USER_CARS",
joinColumns = @JoinColumn(name="USER_ID", referencedColumnName = "id"),
inverseJoinColumns = @JoinColumn(name="CAR_ID", referencedColumnName = "id")
)
private List<Car> cars;
当我将用户插入数据库时,一切正常,并且他的汽车也添加到 user_cars 表中。检索汽车时,我得到了这个异常:
Method threw 'org.hibernate.LazyInitializationException' exception.
我已经搜索了其他答案,但没有找到解决方法。这就是我试图检索用户的方式。
public T findById(Long id) {
em = emf.createEntityManager();
em.getTransaction().begin();
T et = (T) em.find(entityClass, id);
em.getTransaction().commit();
em.close();
return et;
}
有什么问题,我该如何解决?我不明白后台发生了什么。
【问题讨论】:
-
你究竟是什么时候得到这个异常的?当
session不再可用时,当您尝试访问延迟加载的属性时,您会看到它。您可能希望将其作为预加载的替代方法。 -
尝试在检索到的数据中查看用户汽车时会出现此异常(在调试时)。
标签: java hibernate jpa hibernate-onetomany