Questions tagged «jpa»

Java Persistence API(JPA)是Java规范,用于访问,持久化和管理Java对象/类与关系数据库之间的数据。它是EJB 3.0规范的一部分,并且是对象到关系映射(ORM)的行业标准方法。

1
查询,本机查询,命名查询和类型查询之间的区别
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 5年前关闭。 改善这个问题 查询,本机查询,命名查询和类型查询之间有什么区别?“独立”查询是否存在,还是只是缩写?在我看来,本机查询是用简单sql编写的查询,而命名查询与实体(休眠映射)有关。有人可以简要解释一下吗?

3
使用什么:JPQL或Criteria API?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 1年前关闭。 改善这个问题 我的Java应用程序使用JPA进行对象持久化。业务域非常简单(只有三个类是持久性的,每个类具有3-5个属性)。查询也很简单。问题是我应该使用哪种方法:JPQL或Criteria API?

16
如何在Maven中配置JPA以进行测试
有没有一种方法可以在Maven项目中设置第二个persistence.xml文件,以使其用于测试,而不是用于部署的常规文件? 我尝试将persistence.xml放入src / test / resources / META-INF中,该副本被复制到target / test-classes / META-INF中,但似乎是target / classes / META-INF(来自src / main的副本/ resources)成为首选,尽管mvn -X test以正确的顺序列出了类路径条目: [DEBUG] Test Classpath : [DEBUG] /home/uqpbecke/dev/NetBeansProjects/UserManager/target/test-classes [DEBUG] /home/uqpbecke/dev/NetBeansProjects/UserManager/target/classes [DEBUG] /home/uqpbecke/.m2/repository/junit/junit/4.5/junit-4.5.jar ... 我希望能够针对简单的hsqldb配置运行测试,而不必更改JPA配置的部署版本,理想情况下,在项目检出后立即进行,而无需进行任何本地调整。

2
具有共享ID的JPA @OneToOne —我可以做得更好吗?
我正在使用一个我不想更改的现有架构。该模式在表Person和VitalStats之间具有一对一关系,其中Person具有主键,而VitalStats使用相同的字段作为其主键和对Person的外键,这意味着其值是相应PK的值人。 这些记录是由外部流程创建的,我的JPA代码从不需要更新VitalStats。对于我的对象模型,我希望我的Person类包含VitalStats成员BUT: 当我尝试 @Entity public class Person{ private long id; @Id public long getId(){ return id; } private VitalStats vs; @OneToOne(mappedBy = “person”) public VitalStats getVs() { return vs; } } @Entity public class VitalStats{ private Person person; @OneToOne public Person getPerson() { return person; } } 我遇到的问题是VitalStats缺少@Id,这对于@Entity无效。\ 如果我尝试 @Id …
68 java  jpa  one-to-one 

3
JPA合并与持久化[重复]
这个问题已经在这里有了答案: JPA EntityManager:为什么在merge()上使用persist()? (15个答案) 2个月前关闭。 到目前为止,我的偏好是始终使用EntityManagermerge()来处理插入和更新。但是我还注意到,合并会在更新/插入之前执行其他选择查询,以确保数据库中不存在记录。 现在,我正在一个需要对数据库进行大量(批量)插入的项目。从性能的角度来看,在我绝对知道我一直在创建要持久化的对象的新实例的情况下,使用持久化而不是合并是否有意义?

4
JPA继承@EntityGraph包括子类的可选关联
给定以下域模型,我想加载所有Answers,包括其Values和其各自的子孩子,并将其放入中AnswerDTO,然后转换为JSON。我有一个可行的解决方案,但它遇到了N + 1问题,我想通过使用ad-hoc摆脱它@EntityGraph。所有关联都已配置LAZY。 @Query("SELECT a FROM Answer a") @EntityGraph(attributePaths = {"value"}) public List<Answer> findAll(); 使用的ad-hoc @EntityGraph对Repository方法我可以确保值是预取的,以防止N + 1上的Answer->Value相关性。虽然我的结果还不错,但是还有一个N + 1问题,因为延迟加载s 的selected关联MCValue。 使用这个 @EntityGraph(attributePaths = {"value.selected"}) 失败,因为该selected字段当然只是某些Value实体的一部分: Unable to locate Attribute with the the given name [selected] on this ManagedType [x.model.Value]; 我如何告诉JPA仅selected在值是a的情况下才尝试获取关联MCValue?我需要类似的东西optionalAttributePaths。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.