В приложении весенней загрузки с hibernate jpa у меня есть 3 таблицы:
@Entity
public class Event {
@Id
private Long eventId;
@ManyToOne
private Account account;
...
}
@Entity
public class Account{
@Id
private Long accountId;
@ManyToOne
private Party party;
@OneToMany(mappedBy = "account")
private List<Event> events;
...
}
@Entity
public class Party{
@Id
private Long partyId;
@OneToMany(mappedBy = "party")
private List<Account>accounts;
...
}
У меня есть accountId, из которого я хотел бы получить все события, связанные с партией учетной записи. , Можно ли сделать это одним запросом?
На самом деле я сделал
select ce from Event ce where ce.account in
( select ba from Account ba join ba.party p where p.partyId in
( select py from Party py join py.accounts bao where bao.accountId=:accountId) )
любой улучшенный запрос?