JPA Onetomany列表未被撤消

时间:2017-11-30 20:29:14

标签: java spring jpa eclipselink

我有一些JPA代码让我有些惊愕。有两个对象;患者和PatientUR(标识符)相关如下:

@OneToMany(mappedBy="patient", cascade = CascadeType.ALL, orphanRemoval=true, fetch = FetchType.EAGER) 
private List<PatientUR> urs;

@ManyToOne(cascade = CascadeType.DETACH) 
@JoinColumn(name="patient_id")
private Patient patient;

我可以在交易中创建患者和患者,并且它们可以正确保留。然而,有时候(一段时间之后)我需要从坚持的患者中检索患者的患者。我用这种方法:

// find patient using an initial reference ur
PatientUR myPatientUR = patientURService.find(ur0);  // is there something broken here?
Patient myPatient = myPatientUR.getPatient();

// Modify patient if required

// retrieve all UR's 
List<PatientUR> myRegisteredURList = myPatient.getUrs();

问题是myRegisteredURList总是返回一个空列表。患者查找和检索在事务中发生。

不确定我在这里缺少什么?

刚刚修改了代码:

List<PatientUR> myRegisteredURList = patientURService.findByPatient(myPatient);

正确返回 - 即通过PatientID搜索PatientUR而不是从Patient对象中检索PatientUR列表。

0 个答案:

没有答案