延迟加载ManyToOne映射无法在eclipselink中工作

时间:2013-07-10 12:00:28

标签: 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”,但它总是急于加载此人?

1 个答案:

答案 0 :(得分:2)

逆实体是什么意思?

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

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