草庐IT

QueryDSL-JPA

全部标签

java - JPA - FindByExample

有没有人有一个很好的例子来说明如何在JPA中通过任何实体类型的反射在通用DAO中执行findByExample?我知道我可以通过我的提供者(Hibernate)做到这一点,但我不想打破中立性......似乎标准API可能是要走的路……但我不确定如何处理它的反射部分。 最佳答案 实际上,按示例查询(QBE)已被考虑包含在JPA2.0规范中,但并未包含在内,即使主要供应商支持它。引用迈克·基思:I'msorrytosaythatwedidn'tactuallygettodoQBEinJPA2.0.CriteriaAPIdoesnotha

java - JPA 和 Hibernate 中的 N+1 问题的解决方案是什么?

我知道N+1问题是执行一个查询以获取N条记录,执行N个查询以获取一些关系记录。但是在Hibernate中如何避免呢? 最佳答案 问题当您忘记获取关联然后您需要访问它时,会发生N+1查询问题。例如,假设我们有以下JPA查询:Listcomments=entityManager.createQuery("""selectpcfromPostCommentpcwherepc.review=:review""",PostComment.class).setParameter("review",review).getResultList();

java - JPA 计数 NamedQuery

如何使用命名查询获取计数,而不获取所有列表(我认为这会提高性能)。这是不起作用的命名查询:@NamedQuery(name="Charakteristika.findAllCount",query="SELECTCOUNT(c)FROMCharakteristikac")执行这个:System.out.println("a");System.out.println(em.createNamedQuery("Charakteristika.findAllCount",Integer.class).getSingleResult().intValue());System.out.print

java - 如何使用 JPA 注释创建连接表?

我需要使用JPA注释在我的数据库中创建一个连接表,因此结果将是这样的:到目前为止,我只实现了2个实体:@Entity@Table(name="USERS",schema="ADMIN")publicclassUserimplementsSerializable{privatestaticfinallongserialVersionUID=-1244856316278032177L;@Id@Column(nullable=false)privateStringuserid;@Column(nullable=false)privateStringpassword;publicStringg

java - JPA EntityManager.getSingleResult() 为 COUNT 查询返回什么?

EntityManager.getSingleResult()对COUNT查询返回什么?那么..foo的确切运行时类型是什么?Objectfoo=em.createQuery("SELECTCOUNT(t)FROMcom.company.ThingtWHEREprop=:param").setParameter("param",value).getSingleResult(); 最佳答案 根据JPAspecification,COUNT返回一个Long:4.8.4AggregateFunctionsintheSELECTClause

java - 抽象父类(super class)的 Hibernate (JPA) 继承映射

我的数据模型代表法人实体,例如企业或个人。两者都是纳税实体,并且都有TaxID、电话号码集合和邮寄地址集合。我有一个Java模型,其中包含两个扩展抽象类的具体类。抽象类具有两个具体类共有的属性和集合。AbstractLegalEntityConcreteBusinessEntityConcretePersonEntity-------------------------------------------------------------SetphonesStringnameStringfirstSetaddressesBusinessTypetypeStringlastString

java - 简明扼要地列出 JPA2 中的新增功能?

有人知道JPA2中的新功能的好列表吗?不是支持JPA2的版本中Hibernate/TopLink的新功能,而是实际规范中的新功能。 最佳答案 接受的答案中提到的链接没有说明二级缓存,因此我决定发布一个快速列表来总结“JPA2.0(JSR-317)中的新增功能”:persistence.xml的标准属性-例如javax.persistence.jdbc.driver等,而不是持久性提供程序特定的属性。混合Access类型-PROPERTY和FIELD访问类型可以在层次结构中混合并组合在一个类中。派生标识符-标识符可以从关系中派生。@E

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 - 用于 JPA 的 Hibernate 或 EclipseLink?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题吗?更新问题,以便editingthispost提供事实和引用来回答它.关闭4年前。Improvethisquestion我想知道是否有人对这些框架的JPA2.0实现有经验?特别是与带有EclipseLink支持的Spring3.x一起使用。您是否将这些框架和JPA2.0用于生产?有任何严重问题吗? 最佳答案 EclipseLink更符合标准,因为它是JPA2的引用实现,Hibernate存在一些合规性问题,但更成熟。EclipseLink的主要优点之一是

java - Spring-Data JPA : save new entity referencing existing one

问题与下面的基本相同:JPAcascadepersistandreferencestodetachedentitiesthrowsPersistentObjectException.Why?我正在创建一个引用现有分离实体的新实体。现在,当我将此实体保存在我的spring数据存储库中时,会引发异常:org.springframework.dao.InvalidDataAccessApiUsageException:detachedentitypassedtopersist如果我们查看springdataJPA源代码中的save()方法,我们会看到:publicSsave(Sentity)