草庐IT

java - Spring Data JPA - 具有无限递归的双向关系

首先,这是我的实体。播放器:@Entity@JsonIdentityInfo(generator=ObjectIdGenerators.UUIDGenerator.class,property="id")publicclassPlayer{//otherfields@ManyToOne@JoinColumn(name="pla_fk_n_teamId")privateTeamteam;//methods}团队:@Entity@JsonIdentityInfo(generator=ObjectIdGenerators.UUIDGenerator.class,property="id")p

java - Java SE 6 中的 JPA/Hibernate,数据访问的最佳实践

我正在开始一个普通的JavaSE项目,我打算使用JPA/Hibernate。我想知道是否有人可以启发我在这种环境(数据访问层)中与Hibernate交互的最佳方式是什么? 最佳答案 我不确定最好的方法是什么,但在我的工作场所,我们的大部分Hibernate交互都基于这些文章:Don'tletHibernatestealyouridentity和GenericDataAccessObjects它们向您展示了如何以一种巧妙的方式创建映射类,以及如何实现一个可以为任何持久类重用的通用DAO。这对我们来说效果很好。

java - 具有共享主键的 OneToOne 关系生成 n+1 个选择;任何解决方法?

想象一下关系数据库中的2个表,例如人员和计费。这些实体之间定义了一个(非强制的)OneToOne关联,它们共享Person主键(即PERSON_ID在Person和Billing中定义,在后者中是外键)。当通过命名查询对Person进行选择时,例如:fromPersonpwherep.id=:idHibernate/JPA生成两个选择查询,一个在Person表上,另一个在Billing表上。上面的示例非常简单,不会导致任何性能问题,因为查询只返回一个结果。现在,想象一下Person有n与其他实体(所有共享Person主键)的OneToOne关系(所有非强制)。如果我错了请纠正我,但运行

java - 优缺点 : Hibernate vs. EJB 3

Hibernate和EJB3相对于彼此的优点和缺点是什么?我找到了this帖子,但它并没有真正解决我的问题。如果我对这两种技术都没有任何特别的联系,什么会导致我选择其中一种而不是另一种?或者在某些情况下我想同时使用两者?谢谢,扎克编辑:回应评论:我不太了解EJB3。我只是想了解它是否对我的公司可行。如果EJB3不能与Hibernate相媲美,请解释原因。 最佳答案 JPA提供了Hibernate功能的一个子集,但是EJB3提供了Hibernate没有解决的其他服务(例如Web服务、EJB、定时器服务)与Hibernate相比,JPA

java - 有没有办法减少与 CriteriaQuery(在 JPA 2.0 中)关联的样板代码的数量?

我喜欢类型安全CriteriaQuery带来了JPA2.0,但它也带来了一些样板代码。例如,假设我有一个名为NamedEntity的实体,它只有一个id和一个名为“name”的字符串字段(假设它的唯一约束设置为true)。NamedEntityManager可能如下所示:publicclassNamedEntityManager{//injectusingyourframeworkEntityManagerentityManager;//retrieveallexistingentitiesoftypeNamedEntityfromDBpublicIterablequeryAll(){

java - JPA left join 查找未使用的条目

我确定我是愚蠢的,但我似乎无法弄清楚这一点......我有两个表:部门(做过,名字)员工(eid,第一个,最后一个,做了)他们有相应的实体JPA管理实体Department和Employee。Employee有Deparment字段,Department不维护Employee列表。不过,我想做的是找到所有没有员工的部门。使用普通的旧SQL通过左连接很容易:SELECTd.*FROMdepartmentasdLEFTOUTERJOINemployeeaseONd.did=e.didWHEREe.didISNULL不过我看不出如何将此查询转换为JPQL。例如,我为JPQL左连接找到的所有示

java - 如何从数据库生成对象@Entities?

我想从数据库生成JPA的@Entity(但我希望它是面向对象的)。例如@Entity@Table(name="badges")publicclassBadgesimplementsjava.io.Serializable{privateIntegerid;privateUseruser;privateStringname;privateStringdate;如果它也支持ManyToOne、OneToMany、Parent和ManyToMany,那就太棒了。附言我尝试了JBoss工具(Hibernate工具),但我没有为我工作。 最佳答案

java - 如何使用 JPA 检索多个对象?

我将JPA2/hibernate与此数据模型一起使用:classStock{@ManyToOneprivateStockGroupstockGroup;privatebooleanvisible;}classStockGroup{@OneToMany(mappedBy="stockGroup")privateListstocks;}我想检索包含Stock的StockGroup,其中visible==true。我想出了这个错误的代码:CriteriaBuildercb=em.getCriteriaBuilder();CriteriaQueryq=cb.createQuery(StockG

java - 基本 JPA 问题 : "Could not determine type for: java.util.Set"

我刚刚开始在PlayFramework网络应用程序中构建我的JPA架构。我对SQL有一定的了解,但我是JPA新手,在第一个障碍上就被绊倒了。根据Play教程,我假设您只是创建Java类,JPA/Play会自动为您创建模式。所以我想在两个模型类Rankable和Tag之间创建ManyToMany关系:@Entity@Inheritance(strategy=InheritanceType.JOINED)publicclassRankableextendsModel{publicStringname;privateSettags;@ManyToMany()@JoinTable(name="

java - 数据库单元测试框架?

在我的项目中,我使用了spring、jpa和PostgreSQLDB,我在数据库中有很多表,我需要对所有表进行单元测试。是否有任何框架可以在每次测试完成后回滚所有事务,以便每个测试都有新的/相同的数据库数据进行测试。这样在所有测试执行后,数据库模式的数据将保持原样。对此有什么建议吗?我对DBUnit有一些了解,但我需要为每个测试的每个输入数据编写.xml文件,并且需要在setup()中插入数据并在tearDown()中清除/删除数据,但不需要对我来说似乎是更好的策略。任何建议表示赞赏。谢谢。 最佳答案 正如@Ryan所指出的....