我试图通过搜索诸如firstName,parent的lastName之类的字段以及诸如课程,admissionYearYear之类的孩子的某些字段来获取Student(父母)及其唯一匹配的Studies(孩子)记录
//parent
@Entity
@Table(name="student")
public class Student implements Serializable {
@LazyCollection(LazyCollectionOption.FALSE)
@OneToMany(orphanRemoval = true,mappedBy = "student",cascade=CascadeType.ALL)
private List<Studies> studies;
//setters getters
}
//child
@Entity
@Table(name = "studies")
public class Studies {
@JsonIgnore
@ManyToOne
@JoinColumn(name = "studentId")
private Student student;
//setters getters
}
学生可能在同一入学年份可以拥有两门课程,所以如果我根据入学年份进行搜索,我期望如下:
[
{
id:1,
firstName:"hussain",
studies:[
{
id:1,
course:"A-level",
admissionYear:2018
}
]
},
id:1,
firstName:"hussain",
studies:[
{
id:2,
course:"B-level",
admissionYear:2018
}
]
]
我首先在子表中搜索,然后获取其父表,最后将子表设置为父记录,从而实现了这一目标。
我正在寻找一个Criteria或HQL,因此不使用任何其他逻辑,例如获取父级并将其设置为子级记录。