【发布时间】:2019-09-23 08:17:51
【问题描述】:
我有一个实体 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;
}
我正在尝试创建一个带有条件的查询,以检索所有 AA,其中包含一个包含等于 100 的代码的 BB 列表。
以下代码不起作用,我遇到了一个异常类型: 嵌套异常是 org.hibernate.ObjectNotFoundException:不存在具有给定标识符的行
criteria.createAlias("bb", "b", JoinType.INNER_JOIN);
criteria.add(Restrictions.eq("b.code", 100));
【问题讨论】:
-
这是所有标准吗?对于 master master-datail,我在这里缺少对 master 的引用。我会获取 master - AA,然后将 BB 与 fetchJoin 一起加入以拥有所有这些。之后,我会将过滤器设置为 b.code = 100。
-
@MichałZaborowski 这不是所有标准它仍然是这部分
Criteria crit = session.createCriteria(AA.class);
标签: hibernate jpa hibernate-criteria