[英]JPA how to lazily load collection?
请告知如何延迟加载 map“Groupunit_from”? 如何开一个 JPA session 和交易?
@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<>();//
Collections默认是懒加载的。
您无需指定任何内容即可延迟加载集合。
初始化 session 和 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 将延迟加载这些元素。 如果您在调试时观察应用程序中触发的查询,您将观察到当您在 Z93F725A07423FE1C889F448B33D21F46 代码中首次使用此 map 时,将触发填充此 map 的查询。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.