簡體   English   中英

初始化集合時發生延遲初始化異常-JPA

[英]Lazy Initialization Exception on Initialize a Collection - JPA

我實現了一個簡單的SpringMVC應用程序。 作為模型,我擁有的PersonEvent都被映射到H2 database

現在,我能夠存儲一個Person對象和一個Event對象。 但是,當我嘗試將Person列表存儲到Event對象時,總是會遇到異常:

無法延遲初始化集合,無法初始化代理-沒有會話

到目前為止,我的方法:

@Entity
public class Event implements Persistable<Long> {

      private static final long serialVersionUID = 1L;

      @Id
      @GeneratedValue(strategy = GenerationType.AUTO)
      private Long id;

      private String eventName;

      @OneToMany(fetch = FetchType.EAGER)
      @ElementCollection(targetClass = Member.class)
      private List<Person> members = new ArrayList<>();
}

@Entity
public class Person implements Persistable<Long>{

      private static final long serialVersionUID = 1L;

      @Id
      @GeneratedValue(strategy = GenerationType.AUTO)
      private Long id;

      private String firstname;
      private String lastname;
}

目的是選擇帶有質數SelectManyMenu Person對象,並將其存儲到事件的List<Person> members 當我通過SQL將某些Person對象添加到EventSelectManyMenu正確地預先選擇添加的Person對象。 但是,當我選擇其他Person對象並調用save ,就會出現異常。

首先,我認為我的save方法不起作用。 但是它必須能正常工作,因為我能夠分別保存Person對象和Event對象(兩者之間沒有Relationship )。

為了正確映射,您應該將members字段映射為@OneToMany(mappedBy = "event", fetch = ...) ,然后在您的Person類中添加@ManyToOne Event event 您也可以通過閱讀獲取策略文檔來確定需要使用哪種獲取策略。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM