问题标签 [jpa]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - JPA 和继承
我有一些 JPA 实体,它们相互继承并使用鉴别器来确定要创建的类(尚未测试)。
因此,在 SwitchAccounts 类中,我想使用基类 Switch,因为直到运行时我才知道将创建哪个对象。我怎样才能做到这一点?
hibernate - 修复 Hibernate 错误“两次使用相同的实体名称”
如何修复以下 Hibernate 错误:
“两次使用相同的实体名称”是什么意思。
java - 什么是 Java JPA 查询“层”的好设计
在 JPA 中,实体是带有很好注释的普通 Java 对象。但是我还没有找到与它们和数据库交互的好方法。
在我当前的应用程序中,我的基本设计始终是将基于序列的 id 作为主键,因此我通常必须通过 PK 以外的其他属性查找实体。
对于每个实体,我都有一个无状态的 EJB
查询方法都是一些变化
所以:
我真的很讨厌在 EJB 中使用这些方法,因为它们似乎属于实体本身,而 EJB 本地接口让我很恼火。
我讨厌我在每个方法中都有“try、createQuery、getResultList、catch、log、return”的重复(主要是Java中没有闭包或“with语句”或类似的结果)。
是否有人建议以更好的方式与解决我的一个或两个问题的实体和数据库进行交互?
我目前正在考虑使用泛型和反射做一些基本方法,以获得一些通用查询方法来减少重复(问题 2)(我稍后会提出一个原型供审查)。
谢谢,安德斯
java - 我可以在 java 命令行上指定一个 JPA 兼容的 persistence.xml 文件吗?
我有一个包含所有 java 类的 UberJar,但想用外部 persistence.xml 文件执行这个 jar。根据规范,Hibernate(或任何其他 JPA 提供程序)在类路径上的任何 META-INF 文件夹中查找 persistence.xml 文件,但我无法使用 UberJar 完成这项工作。有任何想法吗?UberJar 的类加载器是否仅限于 jar 文件的内容?
hibernate - 休眠:比较当前和以前的记录
我想将内存中 Hibernate 实体的当前值与数据库中的值进行比较:
在CODEBLOCK#1中,我得到了newEntity.getProperty()="new value"
AND oldEntity.getProperty()="new value"
(当然,我期望oldEntity.getProperty()="old value"
的是)。实际上这两个对象在内存中是完全一样的。
我搞砸了HibernateSessionFactory.getSession().evict(newEntity)
并试图oldEntity=null
摆脱它(我只需要它来进行比较):
现在这两个实体是不同的,但我当然会感到恐惧org.hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session
。
任何的想法?
编辑:我尝试了双会话策略;我修改了我HibernateSessionFactory
以实现会话地图,然后......
我的单元测试在尝试打印 oldEntity 注释时挂起...... :-(
java - 在哪里(哪一层)放置实体查询方法、“持久”方法等?
我有一个带有一些 JPA/Hibernate 实体的 SEAM 应用程序。我现在想知道将我的查询和持久性方法放在哪里。
默认选择似乎将它们放在注入的会话 bean 层中
但我想我宁愿拥有实体本身的方法。优点/缺点是什么?
- 可测试性?
- 好看吗?
- 表现?
是否有人从实体上的方法而不是会话 bean 中获得与 EntityManager 等交互的最佳实践的链接?
最好的,安德斯
java - JPA/Hibernate 实体类和同步的最佳实践是什么?
我见过的大多数 JPA/Hibernate 实体 bean 类的示例似乎都没有显式同步。然而,可以在构建事务的上下文中调用这些对象的 getter/setter。并且有可能跨多个线程调用这些方法(尽管这可能是不寻常和奇怪的)。
似乎如果它是跨多个线程构建的,那么对对象状态的更改可能会丢失,这将是可悲的。
那么,省略同步是最佳实践吗?Hibernate 检测代码是否为我处理了正确的同步?
举个例子:
投掷星方法需要同步吗?我当然不希望我的忍者失去任何投掷的星星。
jpa - JPA - 具有复合键的表与其自身的多对多关系
我想使用 JPA 注释创建一个表(RoutePlace)与其自身的多对多关系。我想加入的表的独特之处在于它有一个复合键。
示例:https ://h4losw2.files.wordpress.com/2008/10/tables.png
有什么建议么?
提前致谢
java - 在 JPA 中设置列的默认值
是否可以为 JPA 中的列设置默认值,如果使用注释,它是如何完成的?
java - 找不到时的异常
当找不到某些东西时,在 JPA 中抛出异常的理由是什么?
补充:
此行为在 EJB2 中可见,并且已从 EJB3 中删除 - 但是...在调用抛出 NoResultException 的Query#getSingleResult()时仍然存在。
通常我不认为找不到某些东西是一个例外。实际上,在某些情况下,这可能是我的默认情况,并且在大多数其他情况下至少是预期的情况。这让我想起了一句老话,您不应该将异常用作业务逻辑的一部分,而只能将异常用作您不知道或不想处理的特殊情况。
有谁知道为什么它在 JPA 中以这种方式实现?找不到东西时返回 null 有什么缺点?