问题标签 [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.
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() 的一行。
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
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 依赖项:
eclipse - 带有 JPA 的 Eclipse Photon:导入 javax.persistence 无法解决
我安装了GlassFish 5
和GlassFish 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 还是很陌生...
jpa - 如何将 @ConstructorResult 与 Set 一起使用场地
我正在尝试为@NamedNativeQuery
具有a 值的@ConstructorResult
字段的类创建 a 。Set
enum
兽医JPA.java:
兽医.java:
VetSpecialisation.java:
当我尝试执行命名查询时:
我得到以下异常:
我希望 SQL 为多值Set
而不是单个值返回多行,这导致构造函数不匹配。如何更改 SQL 以向构造函数生成正确的输入,或者是否需要进行其他配置更改?
eclipselink - Eclipselink 2.7.3 未执行“拖放和创建”
在 persistence.xml 中使用以下配置
根据配置文件:
EclipseLink 将尝试删除所有表,然后创建所有表。如果遇到任何问题,EclipseLink 将遵循特定数据库和 JDBC 驱动程序组合的默认行为,然后继续执行下一条语句。
如果架构经常更改或在测试期间需要清除现有数据,这在开发中很有用。
注意:使用 drop-and-create 将删除表中的所有数据。您永远不应该在数据库中有有价值数据的生产模式上使用选项。如果架构发生巨大变化,则数据库中可能存在阻止旧表删除的旧约束。这可能需要通过另一种机制删除旧模式。
使用以下依赖项:
我究竟做错了什么 ?
hibernate - Hibernate 5.3.2 中是否弃用了位置参数?
我们正在从 Hibernate 3 迁移到 Hibernate 5.3 ,我们在 HQL 中使用了位置参数,我看到一些关于 Hibernate 支持的帖子说 Hibernate 5 不再支持位置参数。应该用命名参数替换?
有人可以证实这一点吗?
如果可能的话,请让我知道 Hibernate 3 弃用了哪些内容?
提前致谢。
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
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
任何想法如何调试这种情况?