问题标签 [jpa-2.2]

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 投票
2 回答
6248 浏览

java - 休眠 5 - java.lang.NoSuchMethodError: javax.persistence.Table.indexes()

我正在尝试使用休眠注释测试一些 POJO,并且我不断地遇到相同的错误。我在另一个项目中使用了相同的配置,一切正常。我测试了测试 hib 对象时使用的 jdbc 连接 - 并且连接工作正常。

我发现了一些其他关于相同错误的问题,但没有任何帮助。

使用 main 方法测试类中的代码:

带有休眠注释的 POJO:

下面是每个实体的 getter 和 setter。

文件 hibernate.cfg.xml 与另一个项目中的相同文件具有相同的配置,其中连接和休眠代码工作得非常好——正如上面所写,连接是在一个单独的类中测试的。

我正在使用的罐子(全部添加到类路径):

  • antlr-2.7.7.jar byte-buddy-1.8.0.jar
  • 同学-1.3.0.jar
  • dom4j-1.6.1.jar
  • hibernate-commons-annotations-5.0.3.Final.jar
  • hibernate-core-5.3.0.Final.jar
  • hibernate-jpa-2.0-api-1.0.0.Final.jar
  • jandex-2.0.3.Final.jar
  • javassist-3.22.0-GA.jar
  • javax.persistence-api-2.2.jar
  • jboss-logging-3.3.2.Final.jar
  • jboss-transaction-api_1.2_spec-1.0.1.Final.jar
  • mysql-connector-java-8.0.11.jar

我在标题中提到的错误提到了我的代码中的一行,这是第一个代码片段中发生 .buildSessionFactory() 的一行。

0 投票
1 回答
1559 浏览

java - EntityManager Hibernate 5 没有持久性提供程序

我有以下项目结构,它是一个多模块 Maven 项目。我的问题在于持久性配置(位于模型模块中)。它在不返回错误的情况下生成我的战争,但是在实例化 EntityManager 时,它会抛出一个javax.persistence.PersistenceException: No Persistence provider for EntityManager named myPersistence

持久性.xml

家长 - pom.xml

模型 - pom.xml

我探索了几种解决方案,包括:

  • 更改 persistence.xml 文件的位置
  • 更改提供程序 (org.hibernate.jpa.HibernatePersistenceProvider)
  • 使用 c3p0 提供程序
  • 包括 target/modele-1.0.jar 到 persistence.xml
  • 包括persistence.xml
0 投票
2 回答
1746 浏览

java - EclipseLink:未加载实体

我有一个 JPA-Project,我正在尝试将其更新到 JPA 2.2.0 和 EclipseLink 5.7.1,因为我遇到了 EclipseLink 的错误 429992。有了新版本,我就不能再执行我的应用程序了——EclipseLink 会抛出一个类似于以下的异常(下面我的示例中的短变体):

在更新之前,一切正常(除了前面提到的错误),而且如果我签出早期的提交,也没有问题。

我已经用下面附加的最小设置重现了这种行为。

该项目是使用 Java SE 10 编译的,因为 IDE 我使用的是 Eclipse,但在我的项目属性中,我只能选择“Generic 2.1”作为 JPA-Platform。这可能是个问题吗?

你能重现这个错误吗?

据我所见,Entity-class 列在persistence.xml 中,也用 注释@Entity,但EclipseLink 没有加载。清理项目甚至创建一个新项目都不能解决问题。

你有什么想法,我的错误可能是什么?我是否遗漏了有关使用 JPA 2.2/EclipseLink 2.7.1 的任何基本要点?

感谢您的任何提示或评论!


main主类中的方法:

实体Artifact

持久性.xml:

pom.xml 用于 Maven 依赖项:

0 投票
0 回答
686 浏览

eclipse - 带有 JPA 的 Eclipse Photon:导入 javax.persistence 无法解决

我安装了GlassFish 5GlassFish Tools(来自http://download.eclipse.org/glassfish-tools/1.0.0/repository/)。我也试过 GlassFish 4.1.1,结果是一样的。

我创建了一个新的 JPA 项目(JPA 2.1):

在此处输入图像描述

在 Eclipse 的 Data Source Explorer View 中,我添加并测试了一个数据库连接:

  • 连接配置文件:德比
  • 带有驱动程序文件的“Derby Embedded JDBC Driver 10.2”~/glassfish5/javadb/lib/derby.jar

接下来,我添加了一个实体文件MD.java。样板代码给了我一个错误:

在此处输入图像描述

我想摆脱这个错误,但是“Search repositories for javax.persistence”不会产生任何搜索结果。

第一个问题:如何在 Eclipse 中解决这个问题?如果它是一个 Maven 项目(不是 JPA 项目),我想我会添加到 pom.xml 中:

第二个问题:在项目属性的“项目方面”中(以及在创建“JPA 项目”时),我只能选择小于或等于的 JPA 版本2.1。如何JPA 2.2在 Eclipse JPA 项目中使用?

正如您现在可能已经猜到的那样,我对 Eclipse 还是很陌生...

0 投票
1 回答
797 浏览

jpa - 如何将 @ConstructorResult 与 Set 一起使用场地

我正在尝试为@NamedNativeQuery具有a 值的@ConstructorResult字段的类创建 a 。Setenum

兽医JPA.java:

兽医.java:

VetSpecialisation.java:

当我尝试执行命名查询时:

我得到以下异常:

我希望 SQL 为多值Set而不是单个值返回多行,这导致构造函数不匹配。如何更改 SQL 以向构造函数生成正确的输入,或者是否需要进行其他配置更改?

0 投票
0 回答
453 浏览

eclipselink - Eclipselink 2.7.3 未执行“拖放和创建”

在 persistence.xml 中使用以下配置

根据配置文件

EclipseLink 将尝试删除所有表,然后创建所有表。如果遇到任何问题,EclipseLink 将遵循特定数据库和 JDBC 驱动程序组合的默认行为,然后继续执行下一条语句。

如果架构经常更改或在测试期间需要清除现有数据,这在开发中很有用。

注意:使用 drop-and-create 将删除表中的所有数据。您永远不应该在数据库中有有价值数据的生产模式上使用选项。如果架构发生巨大变化,则数据库中可能存在阻止旧表删除的旧约束。这可能需要通过另一种机制删除旧模式。

使用以下依赖项:

我究竟做错了什么 ?

0 投票
1 回答
3014 浏览

hibernate - Hibernate 5.3.2 中是否弃用了位置参数?

我们正在从 Hibernate 3 迁移到 Hibernate 5.3 ,我们在 HQL 中使用了位置参数,我看到一些关于 Hibernate 支持的帖子说 Hibernate 5 不再支持位置参数。应该用命名参数替换?

有人可以证实这一点吗?

如果可能的话,请让我知道 Hibernate 3 弃用了哪些内容?

提前致谢。

0 投票
1 回答
2960 浏览

hibernate - JPA persistence.xml 我希望它连接到 MariaDB,但它总是连接到 hsqldb

我有一个java webapp,

persistence.xml

我创建了一个简单的Bottle @Entity类,它只包含一个 id 和一个 String 属性。

当我运行这个 webapp 时,我在日志中看到它正在处理my-persistence-unit但抛出了一个异常:

为什么 JPA 连接到 hsqldb 而不是 persistence.xml 中声明的 MariaDB?

附加信息:我使用的是 TomEE 8.0.0 M1

0 投票
1 回答
102 浏览

java - jpa 和 struts 项目中持久性提供程序的问题

我正在开发一个使用 jpa 来控制 mysql db 和 struts 的 java ee 应用程序。不幸的是,当我在 tomcat 服务器上运行项目时,我得到了这个错误。

我已经在网上搜索了解决方案,但没有解决我的问题。以下是文件:

src/test/Libro.java

在此处输入图像描述

src/test/testing.java

在此处输入图像描述

src/META-INF/persistence.xml

在此处输入图像描述

src/struts.xml

在此处输入图像描述

网页内容/WEB-INF/web.xml

在此处输入图像描述

网页内容/index.xml

在此处输入图像描述

项目

看法:

在此处输入图像描述

库:

在此处输入图像描述

感谢您的帮助:)

0 投票
0 回答
70 浏览

postgresql - 什么会导致 JPA 本机插入查询随机变慢?

我有一个NativeQuery复制大约 1000 行(选择和插入更改了一些列)。

问题是有时(大约 1/3 的运行)executeUpdate需要 50 毫秒,有时(2/3 的运行)需要 1500 毫秒。

在请求期间多次运行相同的查询。通常所有这些运行都很慢或都很快。

所有请求都是从相同的数据库状态开始的(即选择并插入完全相同的记录)。此时,数据库和 Tomcat 都没有其他用户。有时慢到连续5次,有时快到连续5次,有时慢,快,慢,快。

我尝试重新启动 Tomcat 和 Postgres。重启后有时会很慢,有时会很快。我尝试添加System.gc()到请求的开头,但随机性仍然存在。

当我直接尝试相同的查询(通过dBeaver/JDBC)时,它总是很快。

我的环境:

  • 雄猫 8.5.33
  • Eclipse 链接 2.6.4
  • PostgreSQL 9.6.11
  • Ubuntu 18.04

任何想法如何调试这种情况?