select * from test.SCH_FORUM_THREAD t
where exists (select 'x' from test.FORUM_THREAD_ACCESS fta, school.SCH_GROUP_PERSON gp
where gp.GROUP_ID = fta.GROUP_ID
and t.THREAD_ID = fta.THREAD_ID
and gp.PERSON_ID = :personId)
or exists (select 'x' from test.FORUM_THREAD_ACCESS fta
where fta.THREAD_ID = t.THREAD_ID
and fta.PERSON_ID = :personId);
现在挣扎着与first存在,因为它已经加入了。有没有办法用规范来做到这一点。也因为有两个存在,这是否意味着我需要两个规范。我能在一个规范中实现它吗。
我能够通过创建一个复杂的规范代码来解决它。类似于
@Override
public Predicate toPredicate(Root<ForumThread> root, CriteriaQuery<?> query, CriteriaBuilder builder) {
Subquery<ForumThread> subQuery = query.subquery(ForumThread.class);
Root<ForumThread> subRoot = subQuery.from(ForumThread.class);
Join<ForumThreadAccess, GroupPerson> fragpjoin = subRoot.join("groupPersons");
Predicate threadPredicate = builder.equal(root.get("threadId"), subRoot.get("threadId"));
Predicate personPredicate = builder.equal(fragpjoin.get("personId"), personId);
subQuery.select(subRoot).where(threadPredicate, personPredicate);
Predicate existsGroupPredicate = builder.exists(subQuery);
Subquery<ForumThreadAccess> subQuery1 = query.subquery(ForumThreadAccess.class);
Root<ForumThreadAccess> subRoot1 = subQuery1.from(ForumThreadAccess.class);
Predicate threadPredicate1 = builder.equal(root.get("threadId"), subRoot1.get("threadId"));
Predicate personPredicate1 = builder.equal(subRoot1.get("personId"), personId);
subQuery1.select(subRoot1).where(threadPredicate1, personPredicate1);
Predicate existsPersonPredicate = builder.exists(subQuery1);
return builder.or(existsGroupPredicate,existsPersonPredicate);
}
要使其正常工作,您的实体还应该有适当的@OneTomany和@ManyTomany。
谢谢
我正在用查询构建一个存储库,该查询使用一个复杂的类型参数进行筛选,如下所示: 类是一个简单的POJO: null 谢了!
我只想不使用xml,所以我需要非xml替代这些设置。这是我的POM。
我是一个初学者,学习JPA,为了练习,我在这个问题上工作,我有两个实体班Person和Gym。 Person有:-id(自动生成)-name-age-gym(多对一映射) 在我的服务课上,这就是我正在做的
我是流口水的新手,熟悉使用扩展关键字来继承规则。问题是有没有办法继承多个规则?这类似于在java类上使用多个接口。这是一个我希望它如何工作的示例,但我在规则3上遇到错误:
我们希望将我们的swagger规范拆分为两个文件。一个包含endpoint,一个包含类型定义,因为类型定义用于多个项目,我们希望避免在多个源位置修复某些内容。 我们使用maven codegen插件来生成模型和api,它可以很好地进行拆分。 但是,请求验证不会,因为它无法遵循对它所显示的类型定义的外部引用。 我们使用swagger-request-validator-spring MVC进行请求验
我正在使用100个实体(使用JHipster)设置一个新的Spring Boot API,我的问题是:鉴于我有一组存储库层方法,我希望我的所有存储库都能够调用这些方法。 我已经尝试制作所有接口来扩展('RepositoryQuery'是我默认的自定义接口名称后缀),然后使用特定于实体的类。请注意,所有的类扩展了一个泛型实现类,名为。 请注意,给定正则表达式中的“.*”代表我的持久实体集中的任何实体