Как объединить несколько таблиц с использованием критериев гибернации, когда отношение сущностей не является прямым?
У меня есть три лица. это:
@Entity
public class Organization {
@Id
private long id;
@Column
private String name;
}
@Entity
public class Book {
@Id
private Long id;
@Column
private String name;
@ManyToOne
private Organization organization;
}
@Entity
public class Account {
@Id
private Long id;
@Column
private String name;
@ManyToOne
private Book book;
}
В этих трех сущностях я хотел бы выполнить следующие sql:
SELECT acc.name, acc.id
FROM account acc
JOIN book b on acc.book_id = b.id
JOIN organization org on b.organization_id = org.id
WHERE org.name = 'XYZ'
В этом случаеAccount
сущность не имеет никакого отношения кOrganization
юридическое лицо напрямую.Account
сущность имеет отношение черезBook
, Как я могу добиться этого с помощью динамического запроса критерия гибернации?