问题标签 [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.
java - BeanCreationException:创建名为“entityManagerFactory”的bean时出错,并且SearchException:无法写入索引目录:
我正在使用带有 Spring Boot 的 Hibernate 搜索。我使用 application.properties 文件中的以下属性指定索引位置。
应用程序属性
我遇到的问题是,当应用程序启动时,索引是在指定位置创建的,但随后加载失败,堆栈跟踪如下:
pom.xml
请任何人帮助我并纠正我。
spring - 如何使用 Spring 声明式事务和 EntityManagerFactory?
我在我的应用程序中定义了以下配置
如果我尝试以下列方式将数据插入其中一个表中,则数据不会被持久化。但是,如果我取消注释以明确开始/提交事务的行,那么它工作正常。但是,我想使用声明式的交易方式。如何做到这一点?
如果我使用存储库接口保留实体,它绝对可以正常工作,没有任何问题。请在下面找到代码。
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 的建议不会进行任何存储库调用。
@AfterReturning(pointcut = "execution(* javax.persistence.EntityManagerFactory+.createEntityManager(..))", returning = "entityManager")
参考:https://github.com/spring-projects/spring-framework/issues/25125(该线程还包含非 AOP 方式 - 后处理事务性 EntityManager 实例 - 仅在 Spring Boot 启动时触发)@AfterReturning(pointcut="bean(entityManagerFactory) && execution(* createEntityManager(..))", returning="retVal")
参考:使用 Spring JPA 和 Hibernate 访问 Session 以启用过滤器
我尝试设置应用程序属性 spring.jpa.open-in-view=false,但这没有帮助。
postgresql - 在 xml bean 中将会话变量添加到实体管理器工厂以在 Postgres 数据库中访问它
我是 Spring session 的新手,如果它看起来很傻,但我试图将 session 变量添加到 Entity Manager,以便在查询建立连接时,PostgreSQL 函数中使用的 session 变量作为私钥,我很抱歉。
但我无法将 test.encryption.key 作为 PostgreSQL 数据库中的会话变量。欢迎任何帮助。
spring - 错误:您的配置中的“entityManagerFactory”带有单独的包。弹簧靴
我正在写一个spring boot项目。我将我的项目分成包(控制器、模型、存储库和服务)。但是当我运行我的项目时,我有这个错误。
注入点有以下注解: - @org.springframework.beans.factory.annotation.Autowired(required=true)
行动:考虑在您的配置中定义一个名为“entityManagerFactory”的bean。
配置:
java - 使用 StrategySelectionException 和 BeanCreationException (entityManagerFactory) 启动问题应用程序
请帮忙解决下一个问题,谢谢。我需要对旧项目进行更改,但问题在于我什至无法启动应用程序。我有下一个问题。
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:
java - 在没有 @PersistenceContext 的 Web 应用程序中使用 EntityManagerFactory 创建 EntityManager
我正在使用 JPA 创建一个 Web 应用程序。我已经用连接池 c3p0 配置了 Hibernate。
在我的情况下,无法使用 @PersistenceContext 注释注入 EntityManager。
在 Java EE 文档中,他们说使用 EntityManagerFactory 实例同时创建 EntityManager 实例是线程安全的。
因此,我在我的 Web 应用程序中为我的持久性单元使用一个静态 EntityManagerFactory 实例,并使用它创建 EntityManagers。
但是他们说 EntityManagers 不能同时使用(不是线程安全的)。
所以根据这个我为每个 servlet 请求分别创建一个 EntityManager 实例,在同一个线程中使用它,然后处理它。
我可以这样做吗?
java - EntityManagerFactory 应该在应用程序关闭时关闭吗?
我有一个 Java 应用程序,它有一个用 Swing 制作的 GUI,并且可以互换使用两个数据库。两个数据库之一是 mongoDB,另一个是 MySQL。使用命令行选项选择要使用的数据库。对于 MySQL 数据库,我也使用 Hibernate 和 JPA。我的代码如下所示:
如果mysql
我正在创建一个EntityManagerFactory
和一个EntityManager
. 这里entityManager
创建的作为参数传递给存储库的构造函数,并在应用程序的整个生命周期中使用。我想知道关闭entityManager
和工厂的最佳做法是什么。在文档中搜索我发现了这个:
关闭 EntityManagerFactory 不应掉以轻心。长期保持工厂开工比反复创建和关闭新工厂要好得多。因此,大多数应用程序永远不会关闭工厂,或者仅在应用程序退出时关闭它。
所以我想知道,在应用程序关闭时关闭工厂和实体管理器与不关闭它有什么区别?同样在我的情况下,我声明emf
并entityManager
在mysql
案例内部,因为mongodb
. 为了在应用程序关闭时关闭它们,我应该怎么做?我发现了一些关于Runtime.getRuntime().addShutdownHook()
. 我尝试像下面的代码一样使用它,但它似乎不起作用。