问题标签 [spring-boot-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 回答
81 浏览

java - 具有 OneToOne 映射的 Spring Boot 2 自定义查询

我正在使用带有 thymeleaf 的 Spring Boot 2 来显示来自现有 Oracle 12 数据库的数据。

工作流实体是我想展示的主要实体之一:

workflowCategory保存有关工作流的一些信息,例如工作流的类型:

我有一个工作流类别的自定义查询,因为只有一些信息对我很重要。我需要解码类别名称,因为我无权访问存储信息的表。

如果我尝试访问数据,则会收到以下错误消息。

发现多于一行具有给定标识符:41,对于类:de.elementity.runbook.workflow.WorkflowCategory

该表包含每个工作流程的更多信息,但只有我的查询中的信息对我很重要。如何为@OneToOne映射指定查询?

我也尝试使用@ManyToMany映射,但我收到以下错误消息:

当我DECODE从查询中删除部分时也会发生这种情况。

0 投票
1 回答
3616 浏览

java - org.springframework.dao.DataIntegrityViolationException 在使用 hibernate 和 spring-boot-data-jpa 将 spring-boot 从 2.1.x 更新到 2.2.x 之后

当尝试使用 JPA 将多个对象插入 MySQL 时,尝试将 spring-boot 从版本 2.1.12 更新到 2.2.4 时卡在 DataIntegrityViolationException 上。

示例对象:

和用户状态:

要将对象插入 mysql,我使用默认的 jpa 存储库:

使用 spring-boot-2.1.xuserRepository.save(user)可以正常工作,但使用 2.2.x 会引发此异常:

在日志中使用此详细信息:

如果启用spring.jpa.show-SQL: true,我发现使用 spring-boot-2.2.x 时不会插入User实体,但使用旧 spring 时会插入。

我没有发现 spring-boot 连接到 hibernate 有任何重大变化,并且在相应的更新之后 hibernate 本身也没有重大变化。有没有在发行说明中描述的更新?

0 投票
1 回答
67 浏览

mysql - Spring Boot JPA:如何将字段映射到数据类型不固定的列

我有一个包含两个字段的实体类。

}

attributeValue 的数据类型在这里是 Object,这意味着 value 可以是 integer/boolean/float 之类的任何东西。

如何处理这种情况以保存正确的值,并在获取时再次获得确切的值(布尔/整数等类型)?

0 投票
2 回答
2199 浏览

java - NativeQuery 映射与 @SqlResultSetMapping 与多个 @Entity 类,这可能吗?

我有一个包含 2 个实体类数据的本地查询的情况,如何通过 @SqlResultSetMapping 将该数据映射到实体类? 例如

2 实体类,如客户和地址,名称作为客户中的变量,区域作为地址实体类中的变量。

要将本机查询与实体类映射,可以通过在实体中提供 @SqlResultSetMapping 并在 nativeQuery 中提供映射名称来完成

它将检查映射名称并映射到相应的实体类,这可以针对单个实体类完成。

如果我有来自 2 个实体类的本机查询的数据,是否可以完成,如果是,我如何使用本机查询将其映射到实体类?

0 投票
1 回答
927 浏览

oracle - 带游标的存储过程调用抛出无效列名异常

我们有一个 Spring Boot 应用程序,我们需要连接到 Oracle DB 并通过存储过程获取数据。我们的每个存储过程都有REF_CURSOROUT 参数。我正在尝试相同的使用@NamedStoredProcedureQuery@Entity注释。我们正在使用ojdbc14.jarinpom.xmlOracle12cDialectinapplication.properties文件。我在执行我的代码时收到异常Invalid Column Name 。同样在实体类中,我必须引入一个带有 annotation 的字段,尽管我的存储过程@Id没有返回这样的字段。REF_CURSOR这会是个问题吗?同样不定义@Id字段也不是一个选项,因为 Hibernate 会抛出异常。任何提示将不胜感激。

实现和问题与通过 JPA 2.1 调用带有 ref_cursor 的 Oracle 存储过程时的问题 Invalid column name exception 非常相似

但是那里没有发布答案

0 投票
3 回答
1258 浏览

java - Lombok SuperBuilder 继承

我有一个类 BaseEntity:

在此处输入图像描述

和一个扩展类:

在此处输入图像描述

我正在尝试使用构建器构建播种机:

在此处输入图像描述

我希望 Lombok 在带有基类 baseEntity 的 BreedEntity 中创建一个构造函数。

我阅读了文档,当我删除 @entity 注释 SuperBuilder Docs时它工作得很好

有人可以更详细地解释为什么会这样吗?

0 投票
2 回答
236 浏览

java - 为什么 Hibernate 不批量插入带有 @ElementCollection 注释的字段?

我有一个@Entity包含一些@OneToMany关系,但由于它们由Enums 的集合组成,我正在使用@ElementCollection. 实体具有在数据库级别(MySQL)生成的 id。

这是我刚刚编写的一个与我的实体结构相对应的小示例。

我知道这会GenerationType.IDENTITY停用批处理,但我认为这仅适用于主要实体,而不适用于单个属性。我不得不批量导入一些实体(~20k),每个实体都有一些属性,但是 Hibernate 似乎为集合中的每个属性生成一个插入,使得导入速度非常慢(每个插入 10 到 20 个)记录)。

我现在花了很长时间试图让它更快,我正在考虑只生成一个可以手动导入数据库的 SQL 文件。

有没有办法指示 Hibernate 批量插入@ElementCollection字段?难道我做错了什么?

0 投票
2 回答
433 浏览

spring-boot - 无法使用带有自定义对象的地图创建实体对象

弹簧靴 2.5

我有实体Cart。一辆购物车有许多实体Product。在一个购物车中有许多产品。所以我尝试 @JoinColumn但我得到错误:

但是当我尝试运行应用程序时出现错误:

0 投票
0 回答
1007 浏览

spring-boot - 无法在 Spring Boot JPA 中使用 org.springframework.data.util.Pair

春季启动 2.2.5

一个购物车有很多产品。我需要存储产品和产品数量。所以我为此使用地图。所以这里是我的模型:

但是当我尝试启动应用程序时出现错误:

0 投票
0 回答
286 浏览

spring-boot - 在我的 Spring 启动中: TransientObjectException: object references an unsaved transient instance - 在刷新之前保存瞬态实例

春季启动 2.2

这里发布请求:

但我在这一行得到错误:

错误: