我正在尝试编写一个包含人员和应用程序的系统。每个人都可以申请不同的申请。
我试图在人物对象上应用@oneToManyRelation
(当从数据库中检索一个人时,我想回复一个包含他们申请的每个应用程序的列表。)
这是我的代码:
@Entity
@Table(name="t_person")
public class person extends Model {
@id
@column(name="PERSON_ID")
private string ID;
more properties...
@OneToMany(targetEntity=application.class, mappedBy="SOLDIER_ID")
private ArrayList<application> ApplicationList;
public ArrayList<application> getApplicationList() {
return ApplicationList;
}
public void setApplicationList(ArrayList<application> applicationList) {
ApplicationList = applicationList;
}
}
@Entity
@Table(name="T_APPLICATION")
public class application extends Model {
@Id
@Column(name="APPLICATION_ID")
private int Id;
@ManyToOne
@JoinColumn(name="PERSON_ID")
private person Person;
}
我使用Activator和Oracle DB。当我检索一个应用程序时,我得到了person对象,但是当你找回一个人时,应用程序列表为空。
我哪里错了?
答案 0 :(得分:0)
对注释使用mappedBy
反向属性;它不是你应该在这里使用的列名,而是其他对象上属性的名称。
On Person:
@OneToMany(mappedBy = "person", fetch = FetchType.EAGER)
ArrayList<Application> applicationList;
申请时:
@ManyToOne
Person person;
您可能需要在适用的地方添加@JoinColumn
。如评论中所述,fetch = FetchType.EAGER
也可以提供帮助。
答案 1 :(得分:0)