繁体   English   中英

JPA如何懒加载收集?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM