请告知如何延迟加载地图"Groupunit_from"?如何打开 JPA 会话和事务?
@ElementCollection(targetClass=String.class,fetch=FetchType.LAZY)
@CollectionTable(name="place_definer_groupunit_from",joinColumns=@JoinColumn(name="groupunit_from"))
@MapKeyColumn(name="id")
@MapKeyClass(String.class)
@Column(name="ordinal",nullable=false)
private Map<String,String> Groupunit_from=new HashMap<>();//
默认情况下,集合是延迟加载的。
无需指定任何内容即可延迟加载集合。
在 JPA 中初始化会话和事务
EntityManagerFactory emf = Persistence.createEntityManagerFactory("PersistentUnitName");
EntityManager em = emf.createEntityManager();
// to begin a transaction
em.getTransaction().begin();
// here you can flush or persist
// to commit a transaction
em.getTransaction().commit();
你已经提到了"fetch=FetchType.LAZY",所以jpa会懒惰地加载这个元素。如果在调试时观察到应用程序中触发的查询,则会发现,当您在 Java 代码中首次使用此映射时,将触发用于填充此映射的查询。