JPA 如何延迟加载集合?



请告知如何延迟加载地图"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 代码中首次使用此映射时,将触发用于填充此映射的查询。

最新更新