草庐IT

criterias

全部标签

java - 使用 JPA Criteria API 进行分页的总行数

我正在为我的系统中的实体实现“高级搜索”类型的功能,以便用户可以在该实体的属性上使用多个条件(eq、ne、gt、lt、like等)搜索该实体。我正在使用JPA的CriteriaAPI来动态生成Criteria查询,然后使用setFirstResult()&setMaxResults()来支持分页。到目前为止一切都很好,但现在我想在结果网格上显示结果总数,但我没有看到一种直接的方法来获取Criteria查询的总数。这就是我的代码的样子:CriteriaBuilderbuilder=em.getCriteriaBuilder();CriteriaQuerycQuery=builder.cr

java - 使用 JPA Criteria API 进行分页的总行数

我正在为我的系统中的实体实现“高级搜索”类型的功能,以便用户可以在该实体的属性上使用多个条件(eq、ne、gt、lt、like等)搜索该实体。我正在使用JPA的CriteriaAPI来动态生成Criteria查询,然后使用setFirstResult()&setMaxResults()来支持分页。到目前为止一切都很好,但现在我想在结果网格上显示结果总数,但我没有看到一种直接的方法来获取Criteria查询的总数。这就是我的代码的样子:CriteriaBuilderbuilder=em.getCriteriaBuilder();CriteriaQuerycQuery=builder.cr

java - 连接多个表时如何使用 JPA Criteria API

这是对此的进一步问题:HowtouseJPACriteriaAPIinJOINCriteriaBuildercriteriaBuilder=em.getCriteriaBuilder();CriteriaQuerycriteria=criteriaBuilder.createQuery(Company.class);RootcompanyRoot=criteria.from(Company.class);Joinproducts=companyRoot.join("dentist");JoincityJoin=companyRoot.join("address.city");//Com

java - Criteria API 中有类似 Restrictions.eq(true, false) 的东西吗?

我需要一个通用的Criterion,它强制结果为零匹配。类似于Restrictions.eq(true,false)吗? 最佳答案 我在NHibernate(C#)中使用:Restrictions.Sql("(1=0)");或在Hibernate(Java)中:Restrictions.sqlRestriction("(1=0)");:-) 关于java-CriteriaAPI中有类似Restrictions.eq(true,false)的东西吗?,我们在StackOverflow上找到

java - Criteria eager fetch-joined 集合以避免 n+1 选择

假设Item和Bid是实体:一个Item有很多Bids。它们以典型的父/子关系映射到Hibernate中:...在执行此查询后尝试访问每个项目的出价时,如何避免n+1选择?Listitems=session.createCriteria(Item.class).createAlias("bids","b")..add(Restrictions.gt("b.amount",100))..list();注意我需要一个eagerfetching出价但对集合有进一步的限制(b.数量>100)我试过以下方法失败了:Listitems=session.createCriteria(Item.cla

java - 在 JPA Criteria API 中使用 ParameterExpression 与变量

使用JPACriteriaAPI时,直接使用ParameterExpression而不是变量的优势是什么?例如。当我希望在String变量中按姓名搜索客户时,我可以编写如下内容privateListfindCustomer(Stringname){CriteriaBuildercb=em.getCriteriaBuilder();CriteriaQuerycriteriaQuery=cb.createQuery(Customer.class);Rootcustomer=criteriaQuery.from(Customer.class);criteriaQuery.select(cus

java - Hibernate Criteria 从日期中提取年份

我正在创建一个hibernate条件,用于检查契约(Contract)在一年内是否有效。契约(Contract)将开始日期和结束日期作为标准日期字段。所以习惯了SQL-SERVER,我会想到这个SQL中的一些内容:SELECT*FROMCONTRACTWHEREYEAR(startDate)=?问号是整数形式的给定年份。那么如何将其转换为hibernate条件呢?intyear=2011;//Justatestyearforexamplepurposes.DetachedCriteriacriteria=DetachedCriteria.forClass(Contract.class)

Java - Hibernate criteria.setResultTransformer() 使用默认值初始化模型字段

我是Hibernate的新手,我想从数据库中获取一些数据。我不想得到完整的数据,而是一个实体的投影。问题是,在for循环中,当我获取投影的id和名称时,它获取默认值id=0和name=null而不是id=7和name="Name8"原始实体在数据库中的记录。你知道是什么原因导致这个问题吗?for循环在最后的代码中。这是学生实体@Entity(name="Students")publicclassStudent{@Id@GeneratedValue@Column(name="StudentId")privateintid;@Column(name="Name",nullable=fals

java - Criteria API 返回的结果集太小

这怎么可能,我必须遵循以下标准Criteriacriteria=getSession().createCriteria(c);criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);criteria.add(Restrictions.eq("active",true));Listlist=criteria.list();Thesizeoflistisnow20.IfIaddamaxresultstothecriteria,Criteriacriteria=getSession().createCriteria(c);cr

java - Criteria Builder 在 Select 语句中创建新对象

我想知道是否可以创建这样的查询:em.createQuery("SELECTNEWEmpMenu(p.name,p.department.name)"+"FROMProjectp").getResultList();也可以通过规范来做到这一点:publicPredicatetoPredicate(Rootroot,CriteriaQueryquery,CriteriaBuildercb){return???;}提前致谢! 最佳答案 是的,CriteriaAPI确实具有类似于JPQL构造函数表达式的构造。结果类通过construct设