问题标签 [entitymanagerfactory]

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 投票
1 回答
227 浏览

java - BeanCreationException:创建名为“entityManagerFactory”的bean时出错,并且SearchException:无法写入索引目录:

我正在使用带有 Spring Boot 的 Hibernate 搜索。我使用 application.properties 文件中的以下属性指定索引位置。

应用程序属性

我遇到的问题是,当应用程序启动时,索引是在指定位置创建的,但随后加载失败,堆栈跟踪如下:

pom.xml

请任何人帮助我并纠正我。

0 投票
0 回答
17 浏览

spring - 如何使用 Spring 声明式事务和 EntityManagerFactory?

我在我的应用程序中定义了以下配置

如果我尝试以下列方式将数据插入其中一个表中,则数据不会被持久化。但是,如果我取消注释以明确开始/提交事务的行,那么它工作正常。但是,我想使用声明式的交易方式。如何做到这一点?

如果我使用存储库接口保留实体,它绝对可以正常工作,没有任何问题。请在下面找到代码。

0 投票
0 回答
278 浏览

spring-boot - 为什么在我的 REST 控制器方法之前调用 createEntityManager

我相信,与 AspectJ 相比,这更像是与 Spring JPA(Hibernate)相关的问题。

Spring Boot v2.2.2.RELEASE、Spring v5.2.2.RELEASE、Hibernate v5.4.9.Final、Spring 数据存储库

我正在尝试在我现有的单租户应用程序中实现多租户。

  • 租户由用户通过前端选择。租户 ID 存储在 HttpSession 中。
  • Rest Controller 方法的建议,读取租户 ID 并将其保存在 ThreadLocal 变量中。

现在我必须使用租户 ID 启用休眠过滤器。为此,我的存储库(接口扩展 JpaRepository)方法的 AspectJ 建议有效,但会为来自服务的每个存储库方法调用执行。

这篇文章是关于以下(相同的)实现,其中启用 Hibernate 过滤器的建议在从 HttpSession 读取租户 id 的建议之前被触发。如何更正订单?读取租户 ID 的建议不会进行任何存储库调用。

我尝试设置应用程序属性 spring.jpa.open-in-view=false,但这没有帮助。

0 投票
0 回答
31 浏览

postgresql - 在 xml bean 中将会话变量添加到实体管理器工厂以在 Postgres 数据库中访问它

我是 Spring session 的新手,如果它看起来很傻,但我试图将 session 变量添加到 Entity Manager,以便在查询建立连接时,PostgreSQL 函数中使用的 session 变量作为私钥,我很抱歉。

但我无法将 test.encryption.key 作为 PostgreSQL 数据库中的会话变量。欢迎任何帮助。

0 投票
0 回答
20 浏览

spring - 错误:您的配置中的“entityManagerFactory”带有单独的包。弹簧靴

我正在写一个spring boot项目。我将我的项目分成包(控制器、模型、存储库和服务)。但是当我运行我的项目时,我有这个错误。

注入点有以下注解: - @org.springframework.beans.factory.annotation.Autowired(required=true)

行动:考虑在您的配置中定义一个名为“entityManagerFactory”的bean。

配置:

0 投票
1 回答
46 浏览

java - 使用 StrategySelectionException 和 BeanCreationException (entityManagerFactory) 启动问题应用程序

请帮忙解决下一个问题,谢谢。我需要对旧项目进行更改,但问题在于我什至无法启动应用程序。我有下一个问题。

0 投票
0 回答
12 浏览

class - 想要在运行时将动态生成的实体类添加到 EntityManagerFactory

我正在生成实体类,动态选择保存在 DB 表中的结构。我想将这些类添加/注册到 EntityManagerFactory Bean 并重新加载。我已经尝试了以下来自网站的建议,但所有这些建议要么不合适,要么不工作。

解决方案

解决方案

0 投票
0 回答
40 浏览

java - javax.persistence.PersistenceException:没有名为 PERSISTENCE 的 EntityManager 的持久性提供程序

我在 META-INF 目录下使用 TopLink 拥有同名的 persistence.xml。然后,我有我的代码调用它:

但是,我收到以下错误消息:

原因:javax.persistence.PersistenceException:在 javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:85) 在 util.HibernateUtil 的 javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:54) 中没有名为 PERSISTENCE 的 EntityManager 的持久性提供程序.getEntityManagerFactory(HibernateUtil.java:16) 在 common.AppContext.(AppContext.java:34)

这是persistence.xml:

0 投票
1 回答
47 浏览

java - 在没有 @PersistenceContext 的 Web 应用程序中使用 EntityManagerFactory 创建 EntityManager

我正在使用 JPA 创建一个 Web 应用程序。我已经用连接池 c3p0 配置了 Hibernate。
在我的情况下,无法使用 @PersistenceContext 注释注入 EntityManager。
在 Java EE 文档中,他们说使用 EntityManagerFactory 实例同时创建 EntityManager 实例是线程安全的。
因此,我在我的 Web 应用程序中为我的持久性单元使用一个静态 EntityManagerFactory 实例,并使用它创建 EntityManagers。
但是他们说 EntityManagers 不能同时使用(不是线程安全的)。
所以根据这个我为每个 servlet 请求分别创建一个 EntityManager 实例,在同一个线程中使用它,然后处理它。
我可以这样做吗?

0 投票
2 回答
28 浏览

java - EntityManagerFactory 应该在应用程序关闭时关闭吗?

我有一个 Java 应用程序,它有一个用 Swing 制作的 GUI,并且可以互换使用两个数据库。两个数据库之一是 mongoDB,另一个是 MySQL。使用命令行选项选择要使用的数据库。对于 MySQL 数据库,我也使用 Hibernate 和 JPA。我的代码如下所示:

如果mysql我正在创建一个EntityManagerFactory和一个EntityManager. 这里entityManager创建的作为参数传递给存储库的构造函数,并在应用程序的整个生命周期中使用。我想知道关闭entityManager和工厂的最佳做法是什么。在文档中搜索我发现了这个:

关闭 EntityManagerFactory 不应掉以轻心。长期保持工厂开工比反复创建和关闭新工厂要好得多。因此,大多数应用程序永远不会关闭工厂,或者仅在应用程序退出时关闭它。

所以我想知道,在应用程序关闭时关闭工厂和实体管理器与不关闭它有什么区别?同样在我的情况下,我声明emfentityManagermysql案例内部,因为mongodb. 为了在应用程序关闭时关闭它们,我应该怎么做?我发现了一些关于Runtime.getRuntime().addShutdownHook(). 我尝试像下面的代码一样使用它,但它似乎不起作用。