问题标签 [hibernate-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 - C3P0 池连接到错误的 MySQL 服务器
我在通过 Hibernate JPA 配置的 C3P0 连接池上有一个奇怪的案例persistence.xml
。
这是我的persistence.xml
:
构建应用 JAR 包后,如果我在本地机器上运行,它可以工作,它可以连接到位于AAA.BBB.CCC.DDD
.
但是,如果我在远程服务器上执行 JAR 应用程序,则会收到错误消息:
奇怪的是,我在其中配置了服务器,AAA.BBB.CCC.DDD
但 C3P0 数据源正在尝试连接到远程主机上的 MySQL 服务器,即AAA.BBB.CCC.EEE
.
我没有在代码中使用localhost
or设置任何位置AAA.BBB.CCC.EEE
。
有没有人经历过这个?
json - Spring Boot JPA - 带有嵌套对象和 id 的 json
我正在尝试使用一些基本的 ORM 关系和用于发送 json 的 REST 控制器来做一个项目。
我的 POJO 之一如下所示:
发出 get 请求时,响应如下所示:
有没有办法让请求看起来像这样?(返回外键 id 和嵌套对象)
hibernate - @EntityListeners 注解导致 TypeNotPresentExceptionProxy 错误
我有一个看起来像这样的 JPA 实体。注意@EntityListeners
注释:
我使用 Hibernate 作为 JPA 提供程序。
我使用 SpringLocalContainerEntityManagerFactoryBean
来创建 JPA EntityManager
。我使用该setPersistenceUnitPostProcessors
方法设置了一个PersistenceUnitPostProcessor
实例,该实例在该方法中注册了实体类postProcessPersistenceUnitInfo
。(我知道这不是 Spring Boot,但这是另一个话题)。
在 上设置 aDataSource
和其他属性后LocalContainerEntityManagerFactoryBean
,调用该afterPropertiesSet
方法会引发此异常:
我注释掉了@EntityListeners( { AuditingEntityListener.class } )
上面列出的实体类的注释。
之后,LocalContainerEntityManagerFactoryBean
'safterPropertiesSet()
方法没有抛出错误,它生成了一个可用的EntityManager
实例(我能够使用它来对实体进行基本选择)。所以,至少我知道其余的设置工作正常。
谁能告诉我为什么在使用@EntityListeners
注释时会出现错误,以及如何解决?据我所知,它在运行时类路径中(javax.persistence-api-2.2.jar
文件在 webapp 的WEB-INF/lib
目录中),AuditingEntityListener
类(在spring-data-jpa-1.11.6.RELEASE.jar
文件中)也是如此。
如果有帮助,这些是我用来获取依赖项的 Gradle 条目:
@EntityListeners
使用注释时我该怎么做才能摆脱错误?
谢谢!!!
hibernate - Hiberate JPA - 插入记录时序列变为负数
环境:
我们正在使用 entityManager.merge 来插入对象。序列的值是正值,但当插入 db 时,它变为负值。似乎无法找到造成这种情况的原因。
这是我们为实体对象 id 属性字段设置的休眠设置,带有序列设置
有人可以帮忙吗?谢谢。
java - 如果使用带有 JOIN 的自定义查询,Hibernate AttributeConverter 会失败
我在 hibernate jpa 2.1 中发现了非常有趣的错误。当我在存储库中编写自定义查询实现并在查询中同时使用自定义 AttributeConverter 和 JOIN 时,AttributeConverter 不起作用。我敢肯定,那个 JOIN 会导致这个问题,但我不知道如何解决它。在查询中没有 JOIN AttributeConverter 可以正常工作。我找到了一个丑陋的解决方案(你可以在我的代码中看到它),但我正在寻找正确的解决方案。
因此,如果使用 JOIN 进行查询
查询参数:
我收到以下错误:
下面的代码:
任务实体:
用户实体
任务状态:
任务状态转换器:
和存储库:
在这个项目中,我使用spring-boot 1.5.8.RELEASE
和spring-data-jpa 1.5.8.RELEASE
. 项目中的代码经过简化,仅包含此示例所需的信息(您可以在日志中看到一些冗余信息)。谢谢你的帮助。
hibernate-ogm - JBoss WildFly 11、Hibernate ORM 5.2、OGM 5.3 和 MongoDB - 未找到 OgmIntegrator
通过尝试让 Hibernate ORM 5.2 与 OGM 5.3 一起工作进展缓慢,因此我可以将 JPA 与 MongoDB 一起使用。
要删除 OGM 常见问题解答中引用的 JNDI 查找错误:
在 WildFly 上使用 Hibernate OGM 时,我收到了 JndiException。怎么了?如果您看到 JndiException 说“无法查找 JNDI 名称 [---PlaceHolderDSForOGM---]”,则您的应用程序可能无法访问 Hibernate OGM 的应用程序服务器模块。
要更改此设置,请将以下行添加到存档的 META-INF/MANIFEST.MF 文件中(对其进行调整以匹配您选择的数据存储):
依赖:org.hibernate:ogm services, org.hibernate.ogm.mongodb services 或者,你可以通过描述符 jboss-deployment-structure.xml 来配置它。请参阅参考指南以了解更多信息。
我创建了:jboss-deployment-structure.xml
包含:
现在,当我尝试通过 WildFly 11 控制台部署我的 EAR 时,我得到:
17:58:42,921 错误 [org.jboss.msc.service.fail](ServerService 线程池 -- 65)MSC000001:无法启动服务 jboss.persistenceunit。“NOTiFYwell.ear/NOTiFYwellJAR.jar#NOTiFYwellMongoDBPersistenceUnit”。FIRST_PHASE:服务 jboss.persistenceunit 中的 org.jboss.msc.service.StartException。“NOTiFYwell.ear/NOTiFYwellJAR.jar#NOTiFYwellMongoDBPersistenceUnit”。第一阶段:java.util.ServiceConfigurationError:org.hibernate.integrator.spi.Integrator:在org.jboss.as.jpa.service.PhaseOnePersistenceUnitServiceImpl中找不到提供程序org.hibernate.ogm.service.impl.OgmIntegrator $ 1 $ 1.run(PhaseOnePersistenceUnitServiceImpl。 java:128) at org.jboss.as.jpa.service.PhaseOnePersistenceUnitServiceImpl$1$1.run(PhaseOnePersistenceUnitServiceImpl.java:104) at org.wildfly.security.manager.WildFlySecurityManager.doChecked(WildFlySecurityManager.java:640) at org.jboss .as.jpa.service.PhaseOnePersistenceUnitServiceImpl$1.run(PhaseOnePersistenceUnitServiceImpl.java:137) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor. java:617) 在 java.lang.Thread.run(Thread.java:745) 在 org.jboss。threads.JBossThread.run(JBossThread.java:320) 原因:java.util.ServiceConfigurationError:org.hibernate.integrator.spi.Integrator:在 java.util 中找不到提供程序 org.hibernate.ogm.service.impl.OgmIntegrator。 ServiceLoader.fail(ServiceLoader.java:239) 在 java.util.ServiceLoader.access$300(ServiceLoader.java:185) 在 java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:372) 在 java.util.ServiceLoader$ LazyIterator.next(ServiceLoader.java:404) at java.util.ServiceLoader$1.next(ServiceLoader.java:480) at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.loadJavaServices(ClassLoaderServiceImpl.java:459) at org.hibernate.integrator.internal.IntegratorServiceImpl.(IntegratorServiceImpl.java:40) 在 org.hibernate.boot.registry.BootstrapServiceRegistryBuilder。build(BootstrapServiceRegistryBuilder.java:224) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.buildBootstrapServiceRegistry(EntityManagerFactoryBuilderImpl.java:406) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.(EntityManagerFactoryBuilderImpl.java:196) org.hibernate.jpa.boot.spi.Bootstrap.getEntityManagerFactoryBuilder(Bootstrap.java:32) 在 org.hibernate.jpa.boot.spi.org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.(EntityManagerFactoryBuilderImpl.java:164) .Bootstrap.getEntityManagerFactoryBuilder(Bootstrap.java:89) 在 org.jboss.as.jpa.hibernate5.TwoPhaseBootstrapImpl.(TwoPhaseBootstrapImpl.java:39) 在 org.jboss.as.jpa.hibernate5.HibernatePersistenceProviderAdaptor.getBootstrap(HibernatePersistenceProviderAdaptor.java: 199)在组织。wildfly.jpa.hibernateogm5.HibernateOGMPersistenceProviderAdaptor.getBootstrap(HibernateOGMPersistenceProviderAdaptor.java:87) at org.jboss.as.jpa.service.PhaseOnePersistenceUnitServiceImpl.createContainerEntityManagerFactoryBuilder(PhaseOnePersistenceUnitServiceImpl.java:254) at org.jboss.as.jpa.service.PhaseOnePersistenceUnitServiceImpl。在 org.jboss.as.jpa.service.PhaseOnePersistenceUnitServiceImpl 访问 $900(PhaseOnePersistenceUnitServiceImpl.java:59) $1$1.run(PhaseOnePersistenceUnitServiceImpl.java:125) ... 还有 7 个PhaseOnePersistenceUnitServiceImpl.access$900(PhaseOnePersistenceUnitServiceImpl.java:59) at org.jboss.as.jpa.service.PhaseOnePersistenceUnitServiceImpl$1$1.run(PhaseOnePersistenceUnitServiceImpl.java:125) ... 还有 7 个PhaseOnePersistenceUnitServiceImpl.access$900(PhaseOnePersistenceUnitServiceImpl.java:59) at org.jboss.as.jpa.service.PhaseOnePersistenceUnitServiceImpl$1$1.run(PhaseOnePersistenceUnitServiceImpl.java:125) ... 还有 7 个
17:58:42,926 错误 [org.jboss.as.controller.management-operation](外部管理请求线程 -- 1)WFLYCTL0013:操作(“add”)失败 - 地址:([(“deployment”=>“NOTiFYwell .ear")]) - 失败描述:{"WFLYCTL0080: Failed services" => {"jboss.persistenceunit.\"NOTiFYwell.ear/NOTiFYwellJAR.jar#NOTiFYwellMongoDBPersistenceUnit\". FIRST_PHASE" => "java.util.ServiceConfigurationError: org.hibernate.integrator.spi.Integrator: Provider org.hibernate.ogm.service.impl.OgmIntegrator not found 原因:java.util.ServiceConfigurationError: org.hibernate.integrator.spi .Integrator: Provider org.hibernate.ogm.service.impl.OgmIntegrator not found"}} 17:58:42,927 错误 [org.jboss.as.server](外部管理请求线程 -- 1)WFLYSRV0021:部署部署“ NOTiFYwell.ear" 已回滚并显示以下失败消息:{"WFLYCTL0080: Failed services" => {"jboss.persistenceunit.\"NOTiFYwell.ear/NOTiFYwellJAR.jar#NOTiFYwellMongoDBPersistenceUnit\"。第一阶段" => "java.util.ServiceConfigurationError: org.hibernate.integrator.spi.Integrator: Provider org.hibernate.ogm.service.impl.OgmIntegrator not found 原因:java.util.ServiceConfigurationError: org.hibernate.integrator.spi .Integrator: Provider org.hibernate.ogm.service.impl.OgmIntegrator not found"}} 17:58:42,939 INFO [org.jboss.as.server.deployment](MSC 服务线程 1-7)WFLYSRV0208:停止子部署( runtime-name: NOTiFYwellJAR.jar) in 10ms 17:58:42,942 INFO [org.jboss.as.server.deployment] (MSC service thread 1-8) WFLYSRV0208: Stopped subdeployment (runtime-name: NOTiFYwellWAR.war) in 13ms 17:58:42,952 INFO [org.jboss.as.server.deployment](MSC 服务线程 1-8)WFLYSRV0028:在 25 毫秒内停止部署 NOTiFYwell.ear(运行时名称:NOTiFYwell.ear)
错误:
未找到提供程序 org.hibernate.ogm.service.impl.OgmIntegrator
指在以下位置找到的类OgmIntegrator:
任何想法为什么没有被加载?TIA
postgresql - Spring boot routing datasource not work correctly
I am configuring spring boot web app with Postgres, Hibernate, Atomikos, JPA and Thymeleaf. I use AbstractRoutingDataSource to route to new datasource as below:
If I call
, it routes and return result correctly, but if I call
, I always get the following error (If I call again, it will work ok!) Please help me explain why and what I should do to fix this error.
java - org.apache.catalina.LifecycleException;未能启动组件
在 Tomcat 8 中部署/替换类文件后,出现以下错误。我还没有找到(或正确实施)手头问题的解决方案。任何帮助,将不胜感激!
hibernate - 每次使用相同的参数值调用 findOne(String id) 时,Hibernate JPA 都会生成选择查询
在我们的例子中,休眠 findOne(String id) 花费了很多时间(超过 300 毫秒)。这也不一致。对于某些请求,它会在 100 毫秒内返回结果。
所以我们想提高 findOne 的性能,它不应该花费超过 100 毫秒的时间。由于该表有超过 10 万条记录,我们为选择查询中涉及的实体建立了索引。
我们为每个客户端请求调用这个 findOne 方法。只有 where 子句中的值会改变,而不是其中涉及的列或实体。
所以基本上,如果 Hibernate 可以创建/生成一次选择查询并将其重用于存储库上的所有 findOne 调用,那就太好了。
有人可以帮我弄这个吗?