У меня есть сущность AA
, которая имеет много-много взаимосвязей с сущностью BB
и BB
расширяет другую сущность CC
(с помощью стратегии наследования JOIN).
@Entity
class AA {
@ManyToMany
@JoinTable(name = "AA_BB", joinColumns = @JoinColumn(name = "ID_AA", referencedColumnName = "ID_AA"), inverseJoinColumns = @JoinColumn(name = "ID_BB", referencedColumnName = "ID_BB"), uniqueConstraints = @UniqueConstraint(columnNames = {
"ID_AA", "ID_BB" }))
private List<BB> bb = new ArrayList<>();
}
@Entity
class BB extends CC {
}
@Entity
@Inheritance(strategy = JOINED)
abstract class CC {
@Column
private long code;
}
Iя пытаюсь создать запрос с критериями для получения всех AA
со списком BB
, который содержит код, равный 100.
Следующий код не работает, и я получаю исключениетипа: вложенным исключением является org.hibernate.ObjectNotFoundException: не существует строки с данным идентификатором
criteria.createAlias("bb", "b", JoinType.INNER_JOIN);
criteria.add(Restrictions.eq("b.code", 100));