Как извлечь родительскую запись вместе с соответствующим дочерним, если поле дочерней записи совпадает с использованием Criteria / HQL - PullRequest
0 голосов
/ 07 января 2019

Я пытаюсь получить информацию об учащемся (родительском) и его единственной соответствующей записи об учёбе (дочернем) путем поиска в таких полях, как firstName, lastName родительского и в некоторых полях дочернего объекта, например Course, admissionYear

//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
        }
    ]
]

Я достиг этого, сначала выполнив поиск в дочерней таблице, затем получил ее родителя и, наконец, установил дочернюю запись в родительскую запись.

Я ищу критерий или HQL, поэтому без использования какой-либо дополнительной логики, такой как получение родительского элемента и установка для него дочерней записи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...