问题标签 [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.
java - 具有 OneToOne 映射的 Spring Boot 2 自定义查询
我正在使用带有 thymeleaf 的 Spring Boot 2 来显示来自现有 Oracle 12 数据库的数据。
工作流实体是我想展示的主要实体之一:
workflowCategory
保存有关工作流的一些信息,例如工作流的类型:
我有一个工作流类别的自定义查询,因为只有一些信息对我很重要。我需要解码类别名称,因为我无权访问存储信息的表。
如果我尝试访问数据,则会收到以下错误消息。
发现多于一行具有给定标识符:41,对于类:de.elementity.runbook.workflow.WorkflowCategory
该表包含每个工作流程的更多信息,但只有我的查询中的信息对我很重要。如何为@OneToOne
映射指定查询?
我也尝试使用@ManyToMany
映射,但我收到以下错误消息:
当我DECODE
从查询中删除部分时也会发生这种情况。
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 本身也没有重大变化。有没有在发行说明中描述的更新?
mysql - Spring Boot JPA:如何将字段映射到数据类型不固定的列
我有一个包含两个字段的实体类。
}
attributeValue 的数据类型在这里是 Object,这意味着 value 可以是 integer/boolean/float 之类的任何东西。
如何处理这种情况以保存正确的值,并在获取时再次获得确切的值(布尔/整数等类型)?
java - NativeQuery 映射与 @SqlResultSetMapping 与多个 @Entity 类,这可能吗?
我有一个包含 2 个实体类数据的本地查询的情况,如何通过 @SqlResultSetMapping 将该数据映射到实体类? 例如
2 实体类,如客户和地址,名称作为客户中的变量,区域作为地址实体类中的变量。
要将本机查询与实体类映射,可以通过在实体中提供 @SqlResultSetMapping 并在 nativeQuery 中提供映射名称来完成
它将检查映射名称并映射到相应的实体类,这可以针对单个实体类完成。
如果我有来自 2 个实体类的本机查询的数据,是否可以完成,如果是,我如何使用本机查询将其映射到实体类?
oracle - 带游标的存储过程调用抛出无效列名异常
我们有一个 Spring Boot 应用程序,我们需要连接到 Oracle DB 并通过存储过程获取数据。我们的每个存储过程都有REF_CURSOR
OUT 参数。我正在尝试相同的使用@NamedStoredProcedureQuery
和@Entity
注释。我们正在使用ojdbc14.jar
inpom.xml
和Oracle12cDialect
inapplication.properties
文件。我在执行我的代码时收到异常Invalid Column Name 。同样在实体类中,我必须引入一个带有 annotation 的字段,尽管我的存储过程@Id
没有返回这样的字段。REF_CURSOR
这会是个问题吗?同样不定义@Id
字段也不是一个选项,因为 Hibernate 会抛出异常。任何提示将不胜感激。
实现和问题与通过 JPA 2.1 调用带有 ref_cursor 的 Oracle 存储过程时的问题 Invalid column name exception 非常相似
但是那里没有发布答案
java - Lombok SuperBuilder 继承
我有一个类 BaseEntity:
和一个扩展类:
我正在尝试使用构建器构建播种机:
我希望 Lombok 在带有基类 baseEntity 的 BreedEntity 中创建一个构造函数。
我阅读了文档,当我删除 @entity 注释 SuperBuilder Docs时它工作得很好
有人可以更详细地解释为什么会这样吗?
java - 为什么 Hibernate 不批量插入带有 @ElementCollection 注释的字段?
我有一个@Entity
包含一些@OneToMany
关系,但由于它们由Enum
s 的集合组成,我正在使用@ElementCollection
. 实体具有在数据库级别(MySQL)生成的 id。
这是我刚刚编写的一个与我的实体结构相对应的小示例。
我知道这会GenerationType.IDENTITY
停用批处理,但我认为这仅适用于主要实体,而不适用于单个属性。我不得不批量导入一些实体(~20k),每个实体都有一些属性,但是 Hibernate 似乎为集合中的每个属性生成一个插入,使得导入速度非常慢(每个插入 10 到 20 个)记录)。
我现在花了很长时间试图让它更快,我正在考虑只生成一个可以手动导入数据库的 SQL 文件。
有没有办法指示 Hibernate 批量插入@ElementCollection
字段?难道我做错了什么?
spring-boot - 无法使用带有自定义对象的地图创建实体对象
弹簧靴 2.5
我有实体Cart
。一辆购物车有许多实体Product
。在一个购物车中有许多产品。所以我尝试 @JoinColumn
但我得到错误:
但是当我尝试运行应用程序时出现错误:
spring-boot - 无法在 Spring Boot JPA 中使用 org.springframework.data.util.Pair
春季启动 2.2.5
一个购物车有很多产品。我需要存储产品和产品数量。所以我为此使用地图。所以这里是我的模型:
但是当我尝试启动应用程序时出现错误:
spring-boot - 在我的 Spring 启动中: TransientObjectException: object references an unsaved transient instance - 在刷新之前保存瞬态实例
春季启动 2.2
这里发布请求:
但我在这一行得到错误:
错误: