gpt4 book ai didi

java - Hibernate/Jpa OneToMany 无法正确检索数据

转载 作者:行者123 更新时间:2023-12-01 12:54:37 26 4
gpt4 key购买 nike

我有一个名为 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;
}

问题是什么以及如何解决?我无法理解后台发生了什么。

最佳答案

根据异常消息,您似乎正在检索 List 汽车的内容,但 EntityManager session 已关闭。您可以使用集合的默认延迟初始化,而不是使用

@OneToMany(cascade = CascadeType.ALL, mappedBy = "user", fetch = FetchType.EAGER)

关于java - Hibernate/Jpa OneToMany 无法正确检索数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23993921/

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