问题标签 [hibernate-entitymanager]

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.

0 投票
0 回答
220 浏览

java - 如何通过缓慢的数据库写入(JTA 和 EntityManager)确保正确的结果

我遇到了一个问题,即写入数据库的时间比平时要长。这些延迟写入会导致写入后执行的逻辑块正确。我重新启动了服务器,一切正常。我担心的是,如果服务器开始滞后,我将再次遇到这个延迟写入问题。

我正在使用带有 EntityManager 的 Java Transaction API (JTA)。


当我想要它时,如何强制 EntityManager 进行显式提交?

在执行下一行代码之前,我如何才能等到写入完成?

EntityManager 是否自动提交?,如果是这样,它什么时候做?


我试过 em.getTransaction().commit(); 这会产生错误: JTA can not use getTransaction

我做了一些研究,发现我不应该使用 em.getTransaction().begin(); 也不是 em.getTransaction().commit();,这些指令将与 RESOURCE_LOCAL 事务类型一起使用。在我的情况下,事务由容器管理。

代码片段:


如果 em.persist(ur); 不会立即将 Userrole 提交到数据库,然后执行的代码从数据库读取并检查该 Userroel 是否存在将不正确,因为该角色尚未写入。


持久性.xml

0 投票
2 回答
2802 浏览

java - Spring 3.2 + Hibernate 4.3.4 + jUnit:EntityManagerFactory 已关闭

我正在为我的 Spring 3.2.8 + Hibernate 4.3.4 应用程序编写一些 junit 测试。我的测试类注释为:

但是,尝试使用实体管理器的方面会引发以下错误:

如果查看日志,我会在第二次测试开始时看到以下错误消息:

我意识到这只是一个警告,但我想知道这是否是问题的一部分。我不明白为什么在@DirtiesContext应该确保在开始第二次测试之前清除上下文时抱怨工厂已经注册。

我确实看到在第一次测试结束时正在清理上下文:

所以我不确定为什么它抱怨 EntityManagerFactory 已经注册。此外,我不确定为什么在尝试访问 EMF 时它会关闭。

我是否需要做一些特别的事情来确保它在每次测试中仍然可以访问?我确实在 SO 上找到了与该问题相关的帖子,但并不能帮助我确定发生这种情况的原因。

0 投票
4 回答
56188 浏览

exception - javax.persistence.PersistenceException:无法建立实体管理器工厂

当我尝试创建一个新的 EntityManager 来保存我的数据时,我收到以下错误:

javax.persistence.PersistenceException:无法建立实体管理器工厂

我使用 Hibernate 的 JPA-Persistence Provider ...

不幸的是,我在 stackoverflow / 谷歌搜索中找不到任何有用的帖子......

有谁知道错误的原因可能在哪里?

谢谢您的帮助!

代码片段:

创建实体管理器

堆栈跟踪

持久性.xml

0 投票
1 回答
4606 浏览

hibernate - 删除同一类中的 @Entity 和 @MappedSuperclass

现有类之一(A 类)同时具有@Entity@MappedSuperclass注释,而子类(B 类扩展 A)具有@Entity.

虽然这不对,但它在 hibernate-entitymanager 3.3 中运行良好。两个实体都有自己的表,B 类的表具有与 A 类相同的列,外加一个对应于其自身属性的附加列。

我正在尝试修复这个存在多年的错误,以便我可以迁移到 3.6,因为它不允许两个注释。(它抛出org.hibernate.AnnotationException: An entity cannot be annotated with both @Entity and @MappedSuperclass:

我试图替换@MappedSuperclass为,@Inheritance(strategy=InheritanceType.TABLE_PER_CLASS)但现在在加载另一个类时出现运行时错误,该类的一个属性是一组 B。

@Entity修复同时使用and@MappedSuperclass使用@Entityand的 A 类的平滑方法是@Inheritance什么?我需要任何 SQL 来修复现有数据吗?

0 投票
1 回答
1256 浏览

java - #Resolved - 查询中不存在位置参数 // 存储的函数调用

我有这个方法可以从 ORACLE 调用存储函数,在 java (spring) 中 - 使用实体管理器 + createNativeQuery ..

每次我尝试测试它时,它都会显示:位置参数不存在:查询中的 31:{? = call (...) 但是我在 31 位有什么东西吗..它存在..

另外,我在之前的异常中以 1 开始参数,它说它是基于 1 的,我尝试使用字符串和空值而不是 get,结果仍然相同。关于查询,我还计算了 ? 很多次,所以我确定它有 32(用于参数)+ 1(返回 - 第一个?)...

任何人都可以帮忙吗?

0 投票
2 回答
185 浏览

jsf-2 - 如果我把它放在 Runnable 中,EnityManager 不会删除记录

我在这个网站上搜索了我的问题的一些答案;但每一次都失败了。如果我不把它放在 ExecutorService 中,我可以很好地删除,但如果我这样做,它不会删除。没有错误发生,只是记录仍在数据库中。请指教。

}

0 投票
1 回答
3003 浏览

spring - Spring 4,Websphere 8.5.5 上的 Hibernate JPA JarInputStreamBasedArchiveDescriptor 错误

我有一个在 Websphere 8.5.5 Liberty Profile 上完美运行的 Spring MVC/Spring-Data-JPA(带有 Hibernate)应用程序。但是,当我部署到 Websphere 8.5.5 的完整版时。我在下面粘贴了错误。

我的其他豆子自然依赖EntityManagerFactory,所以这要了我的命。一直在谷歌搜索一整天无济于事。

  • 环境:Websphere 8.5.5
  • 春季版本:4.0.4.RELEASE
  • 休眠 EntityManager 版本:4.3.5
  • IDE:IBM RAD(版本:8.5.5)(Eclipse 3.6.3)

堆栈跟踪:

这是我的 AppConfig 类:

我正在对 Spring 和 JPA 采用全 JavaConfig 方法(即我没有 persistence.xml 文件。)。

我发现了以下问题,但它并没有解决我的情况:

JPA 实体作为可共享 jar 在 Tomcat 7.0.27 下的 WAR 文件中不起作用

有任何想法吗?

0 投票
1 回答
22246 浏览

java - 从 CrudRepository 中的 FindAll() 打印记录

我在我的 Repository 类中扩展 CrudRepository。我想使用 findAll 方法打印表中的记录。至此,我写了一个测试类,可以看到结果查询是正确的。如何打印表格中的单个记录?

这是我的代码片段:存储库类

服务等级

测试用例:

如何将表中的单个记录打印到控制台?

0 投票
0 回答
2375 浏览

jpa - EntityManager“删除”不删除

我有很多实体,对于 CUD 操作,我分别使用 persist()、merge() 和 remove() 方法。但是下面的删除方法不起作用。所以我不得不使用查询来删除给定的对象。我用谷歌搜索了它,但找不到任何令人满意的答案。

为了简单起见,我将 PickList 替换为 Tuple。但没想到这会成为混乱的根源。所以这里是:原始代码......

0 投票
3 回答
930 浏览

java - Spring框架无法使用EntityManager.merge()保存在数据库中

我正在尝试使用 Spring 建立一个网站。我已经设法从我设置的数据库中读取数据,但现在在尝试更新其中的行时遇到了问题。我正在merge()使用EntityManager. 我没有收到任何错误或异常,它只是不会更新数据库上的数据。

我会尽量给出所有相关的代码。

我要更改的实体类:我已经设法用数据库中的数据填充它,所以我认为应该没问题。

贝努策.java

DAO:我使用其中的update(Benutzer benutzer)方法尝试更新数据库中的适当列。

BenutzerDaoImpl.java

以及在代码底部调用该update(Benutzer benutzer)函数的 Controller 类:saveBenutzerdaten()

BenutzerdatenController.java

我一直在寻找解决方案很长一段时间,我也发现很多人有类似的问题,但他们的解决方案都不适合我。我真的希望有人能找到问题所在。开始变得非常沮丧。只需询问您是否需要查看更多代码或相关数据。

另外,如果您发现我应该更改任何内容,请告诉我。我是 Spring 的新手,不确定我做的一切是否正确。尤其是我处理登录用户的方式(可能不是将他保存在 DAO 对象中的好解决方案?)。


我找到了解决方案。在我添加一个服务类并添加到我的 mvc-dispatcher-servlet.xml 之后它工作正常。(sopro.mvc.swm.service 是我的服务类所在的包)。