问题标签 [javax.persistence]

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 投票
3 回答
5365 浏览

json - 为什么我的转换列由 JpaAttributeTypeInspection 标记并显示错误消息“'Basic' 属性类型不应是地图”?

我试图通过 JPA 和 Spring 将一些 JSON 作为字符串存储在列中,并遵循baeldung 教程。我的代码是这样的:

MyEntityExtentionConverter是一个javax.persistence.AttributeConverter<Map<String, Object>, String>使用 Jackson 来回转换字符串的实现ObjectMapper

根据提到的教程这应该是它,但是现在我得到一个错误

“基本”属性类型不应是地图

理论上我可以通过添加@SuppressWarnings("JpaAttributeTypeInspection")注释来禁用它,但这感觉就像忽略而不是解决错误。我在这里做错了什么?

0 投票
2 回答
380 浏览

java - 重新保存修改后的对象时,JPA 合并()无法按预期工作

这是我为实体设置的:

entityManager.merge()当我将新电影添加Actor到电影列表时,我能够成功调用。以下成功持久化了表。

然后我想更新演员的名字,所以我要做的就是这个。我无法更新已经持久化/现有的 Actor:

以上不起作用,我可以看到在调试模式下正在更新的对象但是当merge()被调用时它不会更新数据库。

我哪里错了?我认为如果已经存在,合并会更新。

0 投票
0 回答
532 浏览

java - 无法在 IntelliJ java.lang.ClassNotFoundException 中启动 Tomcat 服务器:javax.persistence.Persistence

我试图恢复我的项目。它在 Eclipse 中并且在那里完美地工作。现在我把它移到了 intelliJ,这是一个 JavaEE maven 项目。但是,当我尝试启动 Tomcat 时出现错误。它在Tomcat日志中:

这是在终端中:

然后我删除了controller.frontend.CommonFilter,认为这是问题,但现在,另一个例外:

这是我的 pom.xml:

这是我的persistence.xml:

这是我的目录:

目录

我试图用谷歌搜索它,但它没有帮助。我试图从 m2 文件夹中强制删除 maven 依赖项并重新导入它,但它也不起作用。

我的错误是什么?谢谢!

0 投票
0 回答
53 浏览

sql - 使用更多 IN 数据时休眠 IN 子句抛出错误

我使用下面的查询来使用hibernate IN子句获取数据,

和方法是注释

例外:

16:44:30.462 [主]调试 org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl

  • 标记为仅回滚的 JDBC 事务(为堆栈跟踪提供了异常)

java.lang.Exception:异常只是为了在 org.hibernate.engine.transaction 的 org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl$TransactionDriverControlImpl.markRollbackOnly(JdbcResourceLocalTransactionCoordinatorImpl.java:271) 处提供堆栈跟踪。 internal.TransactionImpl.setRollbackOnly(TransactionImpl.java:143) at org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject.setRollbackOnly(JpaTransactionManager.java:684)

如果我在 IN 子句中传递多达 550 个 id,它就可以工作。那么它是由于交易超时吗?

建议我修复这种情况。

0 投票
1 回答
380 浏览

java - 如何解决“javax.persistence.PersistenceContext 与签名者信息不匹配”问题?

我有一个在 Tomcat7 上运行的基于 spring-mvc maven 的 Web 项目。这是我在运行 Application.class 时遇到的错误。我如何解决不匹配的歌手以及正在引用哪个包,在下面提供了我的 pom

我的 pom 文件中的依赖项

如果需要有关此问题的其他信息,我将提供。

0 投票
1 回答
260 浏览

hibernate - Hibernate:超类映射到子类中的@UniqueConstraint

Java EE 7,休眠 5.4.21.Final

为什么SubClass继承SuperClass @UniqueConstraint注解,或者更具体地说,为什么 Hibernate在表映射SuperClass期间使用注解?SubClass

如何@UniqueConstraint在子类中覆盖?

使用相同的名称"UK_multi_col"in@UniqueConstraint不会覆盖 in并在表中SubClass生成两个 UNIQUE KEY 。SubClass一个唯一键来自SuperClass和一个来自SubClass,其中应该只有一个(不包括主键)。

Hibernate 生成的代码:

接下来的四行是映射SuperClass期间注释生成的代码:SubClass

继续休眠生成的代码:

数据库表:

有没有人可以解决这个问题?

这是一个休眠错误吗?

0 投票
1 回答
36 浏览

jpa - 从多个不同实体收集所有子实体

我有 3 个实体 A、B 和 C。

  • A 包含一个一对一链接的 B 实体
  • A 包含 C 实体的一对多链接列表
  • B 包含 C 实体的一对多链接列表

数据库方面有 5 个表。对应实体的 3 个表和 2 个单独的链接表,一个包含 A 和 C 之间的链接 (A_to_C),另一个包含 B 和 C 之间的链接 (B_to_C)。在我的存储库中,我试图从特定的 A 记录中检索所有 C 实体,这意味着来自 A 本身的 C 实体和通过 B 链接的 C 实体。

在传统的 SQL 中,这可以使用类似的方法来完成:

或(从 C 开始)

在这些 SQL 示例中,没有指向 B 表的链接,因为 A 包含 B 的 ID,而且它也是 B_to_C 中使用的 ID,所以我真的不需要它。我也知道这些并不完全相同,但是当我只对 C 感兴趣时,它们会产生相同的结果。

不过,我真的在为如何在 CriteriaBuilder (最好)或 JPQL 中做到这一点而苦苦挣扎。我对 jpa 还是比较陌生,所以我希望这里有人可以帮助我。

0 投票
1 回答
811 浏览

java - 如何使用 mySQL 工作台从 lombok 手动设置自动生成的 id?

我有一个应用程序,其中包含一些用 lombok's 注释的实体@Data,并使用

为身份证。它通常工作正常。但我需要通过 mySQL Workbench 手动插入一行,id=635。这搞砸了应用程序,当它试图插入它的下一行时,因为它认为或计算的将是下一个 id,635,已经存在。我以为我可以手动增加 id,但我无法通过 mySQL 工作台在任何地方找到它。

那么lombok/hibernate/jpa在哪里计算或者生成下一个id呢?有没有办法在数据库中手动更改它,或者至少使用另一个 SQL?

我不确定哪个框架会这样做,因为它javax.persistence用于注释,而且lombok.Data,然后在 app.properties 中,没有方言集,但我有一个spring.jpa.hibernate.ddl键,所以我不确定它是否会拉进来也有点冬眠。

0 投票
1 回答
153 浏览

java - 如何覆盖 javax.persistence.AttributeConverter

我有想要覆盖实体子类中的 AttributeConverter 的问题,但子类中定义的转换器没有被调用。根据 AttributeConverter 文档,这应该是这样,但它对我不起作用。我究竟做错了什么?

0 投票
0 回答
93 浏览

spring-boot - Spring Boot中使用Hibernate实现好友关系实体的正确方法

我正在尝试在 Spring Boot 中实现一个友谊实体。起初我打算在 UserAccount 类中使用自引用多对多关系,但决定反对它,因为我还想存储友谊开始的日期。

下面是我想出的。友谊类将包含关注者 UserAccount、关注者 UserAccount 和创建关系的日期。我不确定是否需要在 UserAccount 类中使用相应的 @OneToMany 注释,或者我在下面所做的是否完全正确。

我以前使用过 ManyToOne 和 OneToMany 关系,但不是以这种方式,因为我有两个在同一个班级,所以如果有人能给我一些反馈或给我一些有用的见解来帮助我更好地理解这种关系,我真的很感激.