データベース用のこの OneToMany 列を含む User という名前のエンティティ クラスがあります。
@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;
}
何が問題で、どうすれば修正できますか? バックグラウンドで何が起こっているのか理解できません。