草庐IT

QueryDSL-JPA

全部标签

java - Spring 数据 JPA : How not to repeat myself in countQueries?

我正在使用SpringDataJPA存储库(1.7.2),我通常会遇到以下情况:实体有延迟加载的集合这些集合有时会被急切获取(通过JPAQLfetchjoin)仓库经常返回Page而不是List我需要提供countQuery每@Query在返回Page的存储库上使用fetchjoin.此问题已在thisStackOverflowquestion中讨论过我的典型存储库方法如下所示:@Query(value="SELECTeFROMEmployeeeLEFTJOINFETCHe.addressesa"+"WHEREe.company.id=:companyId"+"ANDe.deleted

java - 我应该将 Bean 验证与 EJB 3.1、JSF2.0 和 JPA 一起使用吗?

我有一个JSF2.0应用程序,我想开始为其添加validator。应用架构的基本概述如下。我有托管支持Bean,其中包含我的JPA注释类和EJB的实例。EJB负责以事务方式访问数据库。JPA注释类值绑定(bind)到我的facelets(并使用EJB进行数据库访问)。我想潜在地使用Bean验证并编写自定义约束,但这意味着我必须将这些约束添加到我的JPA注释类中。在我看来,这似乎违反了我的关注点分离。(将表示/验证与JPA注释类/DAO混合)在这种情况下不使用Bean验证是否更好?我的结构有缺陷吗?有没有我不知道的首选方法?谢谢! 最佳答案

java - Hibernate JPA - 未填充 ManyToOne 关系

我目前正在将一个(工作中的)应用程序从使用EclipseLink转移到HibernateJPA,大多数情况下进展顺利,但我发现了一件事我无法解释,也想不出任何好的搜索条款!基本上,我有四个实体,一对多关系形成一个链:EntityA有一个EntityB的列表,每个EntityB有一个EntityC的列表,每个都有一个EntityD的列表其中每一个都具有多对一的关系,所以:EntityD有一个EntityC,EntityC有一个EntityB,EntityB有一个EntityA。即(为清楚起见大幅缩减):@EntitypublicclassEntityA{@OneToMany(cascad

java - JPA ManyToMany 产生的空连接表

我有一个应用程序,我试图在其中使用Hibernate作为我的JPA提供程序在2个实体之间实现ManyToMany关系。我正在尝试的示例是单向的,其中一个相机可以有多个镜头,而镜头可以装入多个相机。以下是我的实体类...(只是粘贴其中的相关部分)相机:@Entity@Table(name="CAMERAS")publicclassCameraimplementsSerializable{@Id@GeneratedValue(strategy=GenerationType.AUTO)@Column(name="CAM_ID",nullable=false)privateLongcamId;

performance - JPA+Hibernate(J2SE) @OneToMany - 数百万条记录减慢了添加新对象的速度

我在J2SE项目中使用JPA+Hibernate和PostGreSQL数据库。我有2个实体A和B。A与B具有@OneToMany关系。在我的域模型中,A可能引用数百万个B。当我将新对象添加到集合中时,需要几分钟才能完成。@OneToMany(cascade=CascadeType.PERSIST)Collectionfoo=newArrayList();//mightcontainmillionsofrecords//...//thistakesalotoftimefoo.add(newB());我认为JPA在插入新对象之前获取整个集合。是否可以配置关系,以便通过向集合添加新对象时不执

java - 使用 JPA 在 GAE 中保存许多实体

我将JPA与GoogleAppEngine结合使用。假设我有一个非常简单的@Entity,由一个键和一个字符串组成,仅此而已。我现在创建了10000个这样的实体,将它们放在一个列表中,现在想存储所有这些实体。如果我尝试使用EntityManagerem和for循环遍历所有实体的List...for(MyEntityentity:listOfAllEntities){em.persist(entity);}..我会得到一个IllegalArgumentException:java.lang.IllegalArgumentException:can'toperateonmultipleen

java - 如何在不使用 Spring/JPA/Hibernate 的情况下传递 JDBC 连接

我们有一个JavaJ2EE应用程序,它为每个数据库行插入/更新使用单独的Web服务调用。事实证明这太慢了。他们让我来“快速”修复它。我计划将所有Web服务调用转换为纯JDBC。为此,我需要从池中获取JDBC连接,然后以多种不同的方法使用它。我需要在多个DAO中使用相同的JDBC连接,将它们串在一起形成一个数据库事务。我可以明确地将JDBC连接传递给需要它的每个DAO,但这需要我更改很多方法签名,再加上很多单元测试(这与“快速”部分背道而驰)。我正在尝试想出一个好方法,将JDBC连接放在某个地方,然后只需在需要它的方法中获取它,而不必在任何地方显式地传递它。我们不能在这个项目上使用Spr

java - JPA 2.0 hibernate @OneToMany + @MapKeyJoinColumn

OneToMany+MapKeyJoinColumn对我不起作用,请提出我做错了什么。我正在使用JPA2.0+Hibernate3.6.1并想映射下表:上课:@EntitypublicclassQuestion{//idandotherfields@OneToMany(mappedBy="question",cascade=CascadeType.ALL)@MapKeyJoinColumn(name="language_id")privateMapstatements=newHashMap();}@EntitypublicclassStatement{@IdprivateLongid;

java - 具有延迟加载业务标识符的 Hibernate/JPA equals() 和 hashCode()

我想知道如何为Hibernate实体编写正确的equals()和hashCode(),这些实体与作为业务key很重要的另一个实体具有延迟加载的ManyToOne关系。请注意,我已经阅读了theHibernatedocumentationonthistopic我知道我必须/不应该使用对象ID。为了澄清,这里有一个例子:publicclassBusinessEntityimplementsSerializable{//forsimplicity,herejusttheimportantpartprivateStrings;@ManyToOne(fetch=FetchType.LAZY)pr

java - JPA。 JoinTable 和两个 JoinColumns

我需要创建表PORTATION_MODEL_SET。我需要从表portation创建两个键,从表phone_model创建一个键我有代码:@Entity@Table(name="PORTATION")@SecondaryTable(name="PORTATION")@Cache(usage=CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)publicclassJDBCPortationimplementsPortation{@Id@GeneratedValue(strategy=GenerationType.AUTO)privateInteg