草庐IT

criteria

全部标签

java - 是否可以从 Hibernate Criteria 中删除订单?

如果我在对象上有一个@OrderBy("someProperty")注释,然后使用Criteria添加一个ORDERBY子句,如下所示:criteria.addOrder(Order.asc("id"));生成的SQL将执行如下排序:ORDERBYsomeProperty,idasc是否可以改变两者的顺序或者去掉someProperty的顺序?我无法删除@OrderBy注释并且我正在使用HibernateforJava。 最佳答案 Criteria没有删除Order的方法都不是CriterionOrder类非常有限,您只能使用属性名

java - 使用 JPA (Hibernate) 查找包含给定记录的页面

我如何知道记录在JPA查询中的位置?我有一个返回分页结果的服务,它或多或少地实现了一个带有这个签名的方法:ListgetRecordsPage(longpage,intpageSize);当它被调用时,我只是创建一个查询并像这样配置:TypedQueryquery=entityManager.createQuery(criteriaQuery);query.setFirstResult(page*pageSize);query.setMaxResults(pageSize);这对结果进行分页。这按预期工作,而且非常简单。问题我的另一个要求是实现一个方法来检索包含特定记录的页面。实现具有

java - 更有用的 Criteria API 替代品

Criteria比使用JPQL或原始SQL有一些优势,如thisanswer中所述:类型安全;重构友好性;减少对字符串的依赖(但仍然有一些)。还有一个非常大的缺点:它们的可读性较差,而且非常丑陋。是否有用于访问类型安全且可读的关系数据库的(非JPA)JavaAPI? 最佳答案 TimoWestkämperQueryDSL做得很好.这个库提供了一个DSL来查询不同的持久性提供者(JPA、MongoDB、Lucene...)。但我经常使用手工制作的解决方案来简化最常见的查询(列出限制其某些字段的实体),防止我总是写相同的行。对于大多数复

java - 我可以调用具有 hibernate 条件的存储过程吗?

我可以使用Hibernate条件来调用存储过程吗? 最佳答案 参见Usingstoredproceduresforquerying在引用文档中。映射查询是这样调用的。Listemployment=sess.getNamedQuery("BigSP").list();映射查询可以返回实体。{callBigSP} 关于java-我可以调用具有hibernate条件的存储过程吗?,我们在StackOverflow上找到一个类似的问题: https://stackov

java - 使用 GROUP BY 和 RETURN ENTITY LIST 的 Hibernate 标准

我正在尝试在我的条件中使用GROUPBY。我需要这样做:SELECTbFROMBookbGROUPBYvolumeCode;我有以下代码:Criteriac=s.createCriteria(Book.class);c.setProjection(Projections.projectionList().add(Projections.groupProperty("volumeCode")));Listresult=c.list();但此条件仅返回volumeCode(字符串列表)。我需要获取Book的列表。所以我尝试使用变形金刚:Criteriac=s.createCriteria(

java - JPA Criteria 使用单表继承查询实体层次结构

假设我有以下实体:@Entity@Inheritance(strategy=SINGLE_TABLE)@DiscriminatorColumn(name="type")publicabstractclassBaseEntity{privateDatesomeDate;privateDateotherDate;privatebooleanflag;}@Entity@DiscriminatorValue("entity1")publicclassEntity1extendsBaseEntity{privateStringsomeProperty;}@Entity@Discriminator

java - 对象属性的 Hibernate 条件/查询

我有一个类AppUser;classAppUser{privateStringfirstName;privateStringlastName;//--gettersandsetters}我还有一个类(class)Student;classStudent{privateAppUserappUser;privateDatedateOfBirth;//--gettersandsetters}我如何搜索学生JohnDoe、firstNameJohn、lastNameDoe?如果它是出生日期属性,我会创建一个Criteria并在日期上添加一个相等限制(Restritions.eq)。我将如何为A

java - 如何使用 JPA Criteria API/Hibernate 按 Case 语句分组

我正在尝试执行如下查询,通过case语句进行选择并通过相同的case语句进行分组..SelectUSER,(CASEWHENvaluebetween0AND2then'0-2'WHENvaluebetween3AND4then'3-4'ELSE'5+'END)asCASE_STATEMENT,SUM(value).....Groupbyuser,CASE_STATEMENT使用JPA2.0CriteriaAPI和Hibernate。我的测试用例看起来像...CriteriaBuildercb=em.getCriteriaBuilder()CriteriaQuerycq=cb.creat

java - 使用 Criteria API 的动态 JPA 2.0 查询

我在使用JPA2.0的CriteriaBuilder构建动态查询时遇到了一些困难。我猜我有一个很常见的用例:用户提供任意数量的搜索参数X和/或连接:像:selectefromFoowhere(name=X1orname=X2..orname=Xn)CriteriaBuilder的方法或方法不是动态的:Predicateor(Predicate...限制)想法?sample? 最佳答案 在你的情况下,我宁愿使用Expression#in(Collection)避免循环和构建复合Predicate动态:CriteriaBuildercb

java - 多对多的 JPA Criteria API 规范

我有下面提到的三个类(class)。我正在尝试创建一个规范来过滤链接表中匹配的数据。publicclassAlbum{privateLongid;privateListalbumTags;}publicclassTag{privateLongid;privateStringcategory;}publicclassAlbumTag{privateLongid;privateAlbumalbum;privateTagtag;}在上面给出的模式中,我试图找到的是Album表中所有专辑的列表以及AlbumTag中的链接。我想要实现的SQL,不必相同,如下所示select*fromAlbumA