草庐IT

Criteria

全部标签

java - Hibernate Criteria 和行数限制

我有两个名为Parent和Child的实体,它们以一对多关系链接。Child实体有一个boolean值isStudent属性。我如何使用HibernateCriteriaAPI获取所有至少有一个具有isStudent=true子项的父实体?我试图使用一个Projection对象来计算所有至少有一个正确设置了属性的子项的父项,然后返回那些行数大于零的项,如以下代码(它不‘工作,虽然):Criteriacriteria=getCurrentSession().createCriteria(Parent.class);criteria.setProjection(Projections.al

java - 在 JPA Criteria API 查询中使用 countDistinct 的示例

我无法弄清楚如何表示以下JPQL查询:SELECTcount(e)FROMFooe使用标准API。我正在尝试的是:CriteriaBuildercb=em.getCriteriaBuilder();CriteriaQueryc=cb.createQuery(Foo.class);Rootf=c.from(Foo.class);c.select(cb.count(f));但这行不通。我也试过:c.select(cb.count(f.get("id"));这是针对JPA2、Eclipselink的。 最佳答案 试试这个,这是与hiber

java - criteria api where 1<>1 子句

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

java - Hibernate - TypedQuery.getResultList() 返回相同对象的列表

下面是对问题的更多、可能更好的描述:我做了一个简单的选择查询。返回列表包含确切数量的记录/对象,就好像我在数据库中执行相同的查询一样,但问题是所有对象都相同/相同。例如,这是数据库中的结果(我删除了空值):2680101-JAN-00731-DEC-997ObereKirchstr。26CH8304瓦利塞尔恩2680101-JAN-00231-DEC-992ObereKirchstr。26CH8304瓦利塞尔恩这是我在执行查询后调试期间在Eclipse中看到的变量地址的内容:地址ArrayList(id=81)元素数据对象[10](id=86)[0]DLDBAddress(id=82)

java - hibernate ,获取重复值

我正在编写一个非常简单的查询,但由于某种原因我得到了重复的值。Criteriacr=session.createCriteria(ProcessInstance.class,"p").add(Restrictions.isNull("end"));@CleanupScrollableResultssr=cr.scroll(ScrollMode.FORWARD_ONLY);while(sr.next()){pi=(ProcessInstance)sr.get(0);Stringid=pi.getId();//Gettingduplicatevalues}pi.getId()返回重复值。即

java - Hibernate 分离查询作为标准查询的一部分

Java专家能否帮我编写分离查询作为以下SQL语句的条件查询的一部分。selectA.*FROMAETABLEAwherenotexists(selectentryidFROMAETABLEBwhereB.classpk=A.classpkandB.userid=A.useridandB.modifiedDate>A.modifiedDate)anduserid=10146 最佳答案 你需要写一个correlatedsubquery.假设属性/类名称与上面的列/表名称匹配:DetachedCriteriasubquery=Detac

java - 如何使用 JPA Criteria 查询来编写此查询?

谁能帮我获得下面提到的JPA查询的JPA条件查询。SELECTp,lFROMPersonpLEFTJOINLanguagelON(p.language=l.languageandl.localelike:locale)ANDp.namelike:nameANDp.timeBETWEEN:startDateAND:endDateorderbynameasc 最佳答案 假设Person与Language有关系,这就是您在旧版Hibernate中会做的事情:Criteriacriteria=entityManager.createCrit

java - Hibernate/JPA - 访问 SingularAttribute 参数时出现 NullPointerException

我尝试在Hibernate5.0.7.Final中使用JPA2类型安全条件查询。...criteria.where(builder.equal(root.get(SingularAttribute.attr),value));//whereparametersare//criteria.where(builder.equal(root.get(Person_.name),"Can"));...root.get总是抛出NullPointerException。Person的元模型类Person_由org.hibernate.jpamodelgen.JPAMetaModelEntityPr

java - 使用 Hibernate Criteria API,如何查询仅存在于某些属性类型的属性的子属性

考虑类Account、RealAccount、VirtualAccount和Operation,这样:classAccount{}classRealAccountextendsAccount{Stringname;}classVirtualAccountextendsAccount{}classOperation{Accountaccount;}这意味着:只有RealAccount有一个名为name的字段。Operation的账户可以是RealAccount或VirtualAccount。我想查询属于具有特定名称的RealAccount的所有Operation:session.crea

java - 如何使用 native SQL 作为在 Hibernate 中使用 Criteria API 进行的更大查询的片段(where 子句)?

我有以下问题。在我正在开发的应用程序中,我们使用Hibernate,每个查询都是用CriteriaAPI编写的。现在,在某些地方,我们希望增加用户编写一些SQL代码的可能性,这些代码将用作查询中where子句的一部分。所以基本上,用户可以按照自己的方式从数据库中过滤显示给他的数据。几天来,我一直在努力寻找一种方法来修改我们以前的查询以获得上述结果。这是我所知道的:看起来您无法将CriteriaAPI与nativeSQL结合使用。您可以用SQL编写整个查询或仅使用条件API。那正确吗?我问这个问题是因为它是最简单的解决方案,只需将此SQL代码用作我们查询中where子句中的另一个谓词。但