草庐IT

criteriabuilder

全部标签

java - Hibernate CriteriaBuilder 将多行连接成一行

我目前在使用CriteriaBuilder的hibernate模式下得到了双重结果。我有一个存储事件ID的表和一个存储多个值的连接表,这些值具有另一个表的ID。例如;事件ID....---------112311241125连接表IDevent_idtag_id----------------------111242211243311236411237标签IDtag---------1Dance2Hiphop...这显然会导致双重结果..例如.eventID...tag_idtag--------------------11242Hiphop11243Dance是否有可能在hibern

java - 在 CriteriaBuilder 中包含 'case when' 子句

我想使用CriteriaBuilder构建如下所示的having子句:selectobjectid,sum(casewhenattr_meta='severity'then1else0end)asseverity,sum(casewhenattr_meta='priority'then1else0end)aspriorityfromobjectdgroupbyobjectidhavingsum(casewhenattr_meta='severity'then1else0end)!=1orsum(casewhenattr_meta='priority'then1else0end)!=1;

java - criteria api where 1<>1 子句

我希望查询不返回任何值。我不能不查询数据库,所以我想为谓词添加一些无法访问的条件,比如“where11”。但是CriteriaBuilder.equal()不允许这样做。有什么方法可以达到目标吗?谢谢。 最佳答案 怎么样CriteriaBuilder.notEqual(CriteriaBuilder.literal(1),1)虽然,如果您知道这不应该执行,那么在某些RDBMS上使用表达式可能不是最佳选择,如果数据库无法查看绑定(bind)值。我不知道如何使用内联11创建JPA谓词SQL表达式,虽然...

java - JPA CriteriaQuery OneToMany

我有两个具有OneToMany关系的实体。为简单起见,我们假设它们是学校和学生,学校与学生之间存在单向关系。我想找到有特定学生的学校对象(具有特定年龄、姓名、ssn等的学生)。我知道我可以为简单的学校属性(对于学校名称,如下所示)创建一个简单的条件,如下所示:ParameterExpressionp=criteriaBuilder.parameter(String.class,"schoolName");criteria=criteriaBuilder.and(criteria,criteriaBuilder.like(schoolRoot.get("schoolName"),p));

java - JPA 查询语言 criteriaBuilder

我在EJB容器中使用JPA构建了一个应用程序。这是我的代码@PersistenceContext(unitName="damate-pu")privateEntityManagerem;@OverridepublicWorkspacefind(Stringusername,Stringpath){CriteriaBuildercriteriaBuilder=em.getCriteriaBuilder();CriteriaQuerycriteriaQuery=criteriaBuilder.createQuery(Workspace.class);Rootfrom=criteriaQue

java - jpa criteriabuilder upper 给出编译错误

我打算将CriteriaBuilder用于不区分大小写的查询,如此处所述hibernatejpacriteriabuilderignorecasequeries以及网络上的许多其他问题和教程。我的代码是:publicPredicatetoPredicate(Rootroot,CriteriaQueryquery,CriteriaBuilderbuilder){returnbuilder.equal(builder.upper(root.get("firstName")),"test".toUpperCase());}但是我遇到了一个编译时错误:Themethodupper(Expres

java - 在 jpa 标准中, "in case there is at least 1 row return true"

我正在尝试使用JPA(eclipselink)中的标准api创建以下句子,很简单,询问某个类别中是否存在某个用户我想要的句子:SELECTCASEWHENEXISTS(SELECT*FROMuserWHEREcategory=?)THENtrueELSEfalseENDbind=>[10]我尝试使用这段代码:CriteriaBuildercriteriaBuilder=entityManager.getCriteriaBuilder();CriteriaQuerycriteriaQuery=criteriaBuilder.createQuery(Boolean.class);Rootr

java - 如何初始化 Spring Data JPA 规范?

我有一个使用过滤器进行搜索的方法,所以我使用Specification构建动态查询:publicPagesearchFoo(@NotNullFooprobe,@NotNullPageablepageable){Specificationspec=Specification.where(null);//isthisok?if(probe.getName()!=null){spec.and(FooSpecs.containsName(probe.getName()));}if(probe.getState()!=null){spec.and(FooSpecs.hasState(probe.

java - 使用 CriteriaBuilder 一次删除多个对象

我正在尝试使用CriteriaBuilderAPI通过一个查询删除一堆对象。我正在寻找类似这样的选择:CriteriaBuildercriteriaBuilder=entityManager.getCriteriaBuilder();CriteriaQueryquery=criteriaBuilder.createQuery(entityClass);Rootroot=query.from(entityClass);query.select(root).where(/*somecondition*/);returnentityManager.createQuery(query).get

java - 在 JPA CriteriaBuilder 中使用正则表达式

我正在使用JPACriteriaBuilder从MySQL数据库中选择MyEntity类型的实体,如下所示:StringregExp="(abc|def)"CriteriaBuildercb=em.getCriteriaBuilder();CriteriaQueryquery=cb.createQuery(MyEntity.class);root=query.from(MyEntity.class);predicates=newArrayList();predicates.add(cb.like(root.get("name"),regExp));因此,查询结果应包含name值与给定r