JPA OneToMany,总是空着的

Jef*_*man 9 jpa one-to-many

我有双向,一对多,多对一的关系.比如说,一个公司有很多人,一个人有一个公司,因此,在公司,

@OneToMany(mappedBy = "company", fetch = FetchType.EAGER, cascade = CascadeType.ALL)
private Collection<Person> persons;
Run Code Online (Sandbox Code Playgroud)

在人的,

@ManyToOne
@JoinColumn(name="COMPANY_ID")
private Company company;
Run Code Online (Sandbox Code Playgroud)

现在,假设我在公司有一个@PrePersist/@PreUpdate方法,当它更新时,我想在所有人身上设置相同的时间戳...就像,

@PrePersist
@PreUpdate
public void setLastModified() {
    this.lastModified = System.currentTimeMillis();
    if (persons != null) {
        for (Person person : persons) {
            person.setLastModified(this.lastModified);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

当我调试这个时,我看到公司中的人员字段总是空的.当我查看人物集合的类型时,它是一个java.util.Vector.不确定这是否相关.我希望看到一些自动加载JPA集合类型.

我究竟做错了什么?

ane*_*rgy 1

将 fetch = FetchType.Eager 添加到 @ManyToOne 注释。您将其添加到关系的另一端。