我 的 项目 有 :
- rsqlParser 以 解析 复杂 的 查询
1.出于 审核 目的 而 休眠 环境
1.不 知道 如何 实现 isNull rsql 查询 的 相当 愚蠢 的 中级 开发 人员
我 有 两 个 具有 严格 一 对 一 关系 的 Object :包含 对象 B 的 对象 A 和 包含 对象 A 的 对象 B 。 在 RDS 中 , 对象 B 似乎 具有 object _ a _ id 字段
Object _ A 实体 类
@Entity
@Getter
@Setter
@Audited
@NoArgsConstructor
public class Object_A {
@OneToOne(mappedBy = "object_a")
private Object_B object_b;
}
中 的 每 一 个
Object _ B 实体
@Entity
@Getter
@Setter
@Audited
@NoArgsConstructor
public class Object_B {
@OneToOne
@JoinColumn(
name = "object_a_id",
referencedColumnName = "id",
foreignKey = @ForeignKey(name = "object_b_object_a_fk")
)
private Object_A object_a;
格式
很 明显 , 您 可以 看到 Object _ B * * OWNS * * Object _ A , 当 我 尝试 执行 类似 以下 的 简单 操作 时
return auditProperty.isNull();
格式
我 得到
This type of relation (object_b) isn't supported and can't be used in queries
格式
我 想 我 需要 用 某种 方法 来 进行 自 定义 查询 , 我 事先 添加 了 一些 object _ b subselect , 但 不 知道 如何 编写 它 。
1条答案
按热度按时间nmpmafwu1#
您可能应该在问题跟踪器(https://hibernate.atlassian.net)中创建一个问题,并使用一个测试用例(https://github.com/hibernate/hibernate-test-case-templates/blob/master/orm/hibernate-orm-5/src/test/java/org/hibernate/bugs/JPAUnitTestCase.java)来显示此限制,并要求对此进行改进。
通常,在ORM中,这是通过引入
exists
子查询在SQL级别处理的,如下所示:where not exists (select 1 from object_b b where b.object_a_id = rootAlias.id)
不确定在您的情况下这是如何工作的,但是您可以尝试在查询中做类似的事情。