草庐IT

Criteria1

全部标签

java - JPA Criteria builder IN 子句查询

如何为以下给定的JPQL查询编写标准构建器api查询?我正在使用JPA2.2。SELECT*FROMEmployeeeWHEREe.ParentIN('John','Raj')ORDERBYe.Parent 最佳答案 这个标准设置应该可以解决问题:CriteriaBuildercb=entityManager.getCriteriaBuilder();CriteriaQueryq=cb.createQuery(Employee.class);Rootroot=q.from(Employee.class);q.select(root)

java - JPA2 Criteria API 更可取的真实示例有哪些?

我查看了JPA2.0CriteriaAPI,但我发现它不像HibernateCriteria那样繁琐。是否有充分的理由使用JPA2.0CriteriaAPI而不是使用JPA-QL?感谢您的建议。 最佳答案 与HibernateCriteriaAPI一样,JPA2.0CriteriaAPI特别适合动态构建查询,以处理查询结构因运行时条件而异的情况。但还有更多。虽然比Hibernate的CriteriaAPI更冗长,但JPACriteriaAPI允许构建typesafe查询(如果您使用MetamodelAPI)。下面是一个例子:Enti

java - JPA 2 Criteria Fetch Path Navigation

使用JPA2CriteriaJoin方法,我可以执行以下操作://JoinExample(defaultinnerjoin)intage=25;CriteriaBuildercb=entityManager.getCriteriaBuilder();CriteriaQueryc=cb.createQuery(Team.class);Roott=c.from(Team.class);Joinp=t.join(Team_.players);c.select(t).where(cb.equal(p.get(Player_.age),age));TypedQueryq=entityManage

java - JPA Criteria API IN 表达式 参数列表

是否可以在CriteriaAPI.in表达式中使用参数列表?我有这样的事情:Listlist=newArrayList();list.add((long)1);list.add((long)2);list.add((long)3);CriteriaBuildercb=em.getCriteriaBuilder();CriteriaQuerycriteriaQuery=cb.createQuery(Bewerbung.class);Rootbewerbung=criteriaQuery.from(Bewerbung.class);criteriaQuery.select(bewerbun

java - 使用 JPA2 Criteria API 选择 MAX 时间戳

所以我的实体有:@Column(name="TS",nullable=false)privatejava.sql.Timestamptimestamp;我生成的元模型有:publicstaticvolatileSingularAttributetimestamp;我想按MaxTimestamp值选择:Rootroot=query.from(MyEntity.class);ExpressionmaxExpression=cb.max(root.get(MyEntity_.timestamp));但我不被允许,因为:max(Expressionx)Createanaggregateexpr

java - 如何在 Java 中查询对象集合(Criteria/SQL-like)?

假设您有一个包含数百个内存对象的集合,并且您需要查询此List以返回与某些SQL或Criteria类查询匹配的对象。例如,您可能有一个Car对象列表,并且您希望返回1960年代制造的所有汽车,车牌以AZ开头,按车型名称排序。我知道JoSQL,有没有人使用过这个,或者对其他/本土解决方案有任何经验? 最佳答案 过滤是执行此操作的一种方法,如其他答案中所述。过滤是不可扩展的。从表面上看,时间复杂度似乎是O(n)(即,如果集合中的对象数量会增加,则已经无法扩展),但实际上是因为一个或多个需要根据查询对每个对象应用测试,更准确的时间复杂度是

java - JPA Criteria Query API 和两列排序

我遇到了一个简单的问题;苦苦挣扎如何在joined实体上调用orderby。本质上,我正在尝试使用JPACriteria实现以下目标:selectdistinctdfromDepartmentdleftjoinfetchd.childrencleftjoinfetchc.appointmentsawhered.parentisnullorderbyd.name,c.name我有以下几点:CriteriaBuildercb=getEntityManager().getCriteriaBuilder();CriteriaQueryc=cb.createQuery(Department.cl

java - JPA Query 仅选择特定列而不使用 Criteria Query?

是否可以使用JPA查询从对象中仅选择属性A和B而不使用条件查询?要选择所有属性,我只需执行以下操作:SELECTiFROMObjectNameiWHEREi.id=10但我在旧系统上有一个具有许多属性的对象,并且我想只选择几个属性,尽管我知道选择多个属性通常很快。如果不使用条件查询,这可能吗? 最佳答案 是的,就像在普通sql中一样,您可以指定要选择的属性类型:SELECTi.firstProperty,i.secondPropertyFROMObjectNameiWHEREi.id=10执行此查询将返回一个Object[]列表,其

java - 比较 JPA Criteria API 中的日期实体

将JPA2与EclipseLink实现结合使用。我正在尝试构建一个动态查询,它应该会为我带来一些在给定日期后保留的记录。CriteriaBuilderbuilder=em.getCriteriaBuilder();CriteriaQuerycriteria=builder.createQuery(Event.class);Rootroot=criteria.from(Event.class);criteria.select(root);criteria.distinct(true);Listpredicates=newArrayList();//...if(dateLimit!=nul

java - JPA/Criteria API - 相似和相等问题

我正在尝试在我的新项目中使用CriteriaAPI:publicListfindEmps(Stringname){CriteriaBuildercb=em.getCriteriaBuilder();CriteriaQueryc=cb.createQuery(Employee.class);Rootemp=c.from(Employee.class);c.select(emp);c.distinct(emp);Listcriteria=newArrayList();if(name!=null){ParameterExpressionp=cb.parameter(String.class,