问题标签 [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.

0 投票
1 回答
314 浏览

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.

我没有在代码中使用localhostor设置任何位置AAA.BBB.CCC.EEE

有没有人经历过这个?

0 投票
1 回答
1652 浏览

json - Spring Boot JPA - 带有嵌套对象和 id 的 json

我正在尝试使用一些基本的 ORM 关系和用于发送 json 的 REST 控制器来做一个项目。

我的 POJO 之一如下所示:

发出 get 请求时,响应如下所示:

有没有办法让请求看起来像这样?(返回外键 id 和嵌套对象)

0 投票
1 回答
1054 浏览

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使用注释时我该怎么做才能摆脱错误?

谢谢!!!

0 投票
1 回答
1170 浏览

hibernate - Hiberate JPA - 插入记录时序列变为负数

环境:

我们正在使用 entityManager.merge 来插入对象。序列的值是正值,但当插入 db 时,它变为负值。似乎无法找到造成这种情况的原因。

这是我们为实体对象 id 属性字段设置的休眠设置,带有序列设置

有人可以帮忙吗?谢谢。

0 投票
1 回答
895 浏览

java - 如果使用带有 JOIN 的自定义查询,Hibernate AttributeConverter 会失败

我在 hibernate jpa 2.1 中发现了非常有趣的错误。当我在存储库中编写自定义查询实现并在查询中同时使用自定义 AttributeConverter 和 JOIN 时,AttributeConverter 不起作用。我敢肯定,那个 JOIN 会导致这个问题,但我不知道如何解决它。在查询中没有 JOIN AttributeConverter 可以正常工作。我找到了一个丑陋的解决方案(你可以在我的代码中看到它),但我正在寻找正确的解决方案。

因此,如果使用 JOIN 进行查询

查询参数:

我收到以下错误:

下面的代码:

任务实体:

用户实体

任务状态:

任务状态转换器:

和存储库:

在这个项目中,我使用spring-boot 1.5.8.RELEASEspring-data-jpa 1.5.8.RELEASE. 项目中的代码经过简化,仅包含此示例所需的信息(您可以在日志中看到一些冗余信息)。谢谢你的帮助。

0 投票
2 回答
561 浏览

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

0 投票
1 回答
1056 浏览

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.

0 投票
1 回答
8482 浏览

java - org.apache.catalina.LifecycleException;未能启动组件

在 Tomcat 8 中部署/替换类文件后,出现以下错误。我还没有找到(或正确实施)手头问题的解决方案。任何帮助,将不胜感激!

0 投票
2 回答
2896 浏览

hibernate - “字段列表”中的休眠 JPA 未知列

我正在编写一个 Spring Boot + Hibernate JPA 应用程序,我的休眠代码不起作用,下面是详细信息

实体类:

服务/DAO:

下面是我的桌子

在此处输入图像描述

我收到以下异常

我已经检查了实体类中的表名和列名都是正确的,这是一个简单的映射,我也不涉及第二个表。

0 投票
1 回答
334 浏览

hibernate - 每次使用相同的参数值调用 findOne(String id) 时,Hibernate JPA 都会生成选择查询

在我们的例子中,休眠 findOne(String id) 花费了很多时间(超过 300 毫秒)。这也不一致。对于某些请求,它会在 100 毫秒内返回结果。

所以我们想提高 findOne 的性能,它不应该花费超过 100 毫秒的时间。由于该表有超过 10 万条记录,我们为选择查询中涉及的实体建立了索引。

我们为每个客户端请求调用这个 findOne 方法。只有 where 子句中的值会改变,而不是其中涉及的列或实体。

所以基本上,如果 Hibernate 可以创建/生成一次选择查询并将其重用于存储库上的所有 findOne 调用,那就太好了。

有人可以帮我弄这个吗?