java - ManyToOne 映射的延迟加载在 eclipselink 中不起作用

标签 java jpa eclipselink lazy-loading

地址与人具有多对一的关系,例如:

人:

@Id 
    @Column(name="personid")
    private Long personId;
    private String firstName;
    private String lastName;
    private String email;    

    @OneToMany(cascade = CascadeType.ALL,mappedBy="person",targetEntity=Address.class,fetch=FetchType.LAZY)      
    private List addressArray=new ArrayList<>();   
    public Person() {

    }  

和地址:

@ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name="personId")
    private Person person;

我想从地址对象(如“address.person.firstname”)访问人的名字,但它总是急切地加载人?

最佳答案

逆实体是什么意思?

一般来说,是的,任何关系类型都支持 LAZY。 对于 ManyToOne,您必须确保使用 EclipseLink 代理来允许动态编织(或 JavaEE/Spring), 您也可以使用静态编织。

http://wiki.eclipse.org/EclipseLink/UserGuide/JPA/Advanced_JPA_Development/Performance/Weaving

关于java - ManyToOne 映射的延迟加载在 eclipselink 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17570124/

相关文章:

java - 如何在类似于 GridView 的 GridLayout 中获取选定的子项

java - JPA 中的持久化上下文生命周期

java - 如何在 QueryDSL 中将字符串转换为 ASCII?

java - 如何从 JPA 中的持久性异常中获取不同类型的错误?

java - 即时型和日期型

java - 如何使用正则表达式模式限制字符串中的 '.' 或 ','

java - 在tomcat 6.0中从jar文件读取静态资源时如何减少linux上打开文件句柄的数量?

java - Hibernate继承,父类应该根据决策者是子类还是父类

jpa - EntityManager.merge() 没有更新数据库

java - 使用 JAXB 编码时消除空元素