问题标签 [spring-data-jdbc]
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 - 在 Oracle 数据库上持久化具有非自增 id 的实体时引发 DataRetrievalFailureException
BeforeSaveEvent
我将 Spring Data JDBC 与 Oracle 数据库一起使用,并使用处理器在我的实体上设置了自定义 ID 。
当我尝试保留此实体时,会引发以下异常。
如何配置生成的密钥列以避免此异常,或者如何配置不需要生成的密钥?
java - 如何在 Spring Data JDBC 中编写自定义 @Query?
在 Spring Data JDBC 示例中,如何在@Query
注解中编写简单查询?
例如在LegoSet Repository中,我如何添加一个简单的findByName
查询?
当我尝试
@Query("select * from lego_set where name = :name")
List<LegoSet> findByName(@Param("name") String name);
它引发以下错误:
此外,参考文档似乎是从一些通用的 spring 数据文档中复制的,因为它提到了 spring data jdbc 中尚不存在的派生查询。
java - 如何在 Spring Data JDBC 中将实体映射到表?
@Table
在 Spring Data JPA 中,我们可以通过使用注释将实体映射到特定表,我们可以在其中指定模式和名称。
但是 Spring Data JDBC 使用 aNamingStrategy
通过转换实体类名来将实体映射到表名。例如,如果我们命名了实体类,MetricValue
那么表应该以metricvalue
默认模式命名。但我需要映射MetricValue
到模式中的metric_value
表app
。
有没有办法通过注释或任何其他方法来覆盖这个映射?
java - 与 spring 数据 jdbc 一起使用时,PagingAndSortingRepository 方法会引发错误
与CrudRepository
_ findAll
_ 我正在使用Lovelace-SR2
发布火车。该类只有一个字段,即@Id
. 根据文档,支持分页和排序。https://docs.spring.io/spring-data/jdbc/docs/1.0.2.RELEASE/reference/html/#repositories
java - Spring Data JDBC 是否支持自定义类型转换器
我有一个实体,它有一个类型的文件java.util.Date
(或者Timestamp
,与案例无关)。
数据库是Oracle,对应的列是类型TIMESTAMP(6) WITH TIME ZONE
当我调用存储库的任何默认值findById
或findAll
方法时,我得到:
ConverterNotFoundException: No converter found capable of converting from type [oracle.sql.TIMESTAMPTZ] to type [java.util.Date]
.
RowMapper
我可以为该类型创建一个自定义,它会正常工作。我只是想知道是否可以注册一个自定义转换器(在我的情况下 from oracle.sql.TIMESTAMPTZ
to java.util.Date
),因此仍然可以从默认映射中受益并在整个应用程序中使用转换器。
java - 是否应允许 spring-data-jdbc EntityRowMapper 跳过不在源映射中的属性?
我们正在考虑将 Spring Data JDBC 引入我们现有的项目,以最小化样板代码 - 但我们遇到了一个障碍:我们有 bean-classes 捕获表中的所有列,但我们使用的查询不检索所有列,因为在某些情况下,某些值恰好不需要。当源映射缺少 bean 中存在的属性时, Spring Data JDBC 的默认值EntityRowMapper
会引发异常。
期望这个默认值EntityRowMapper
应该能够忽略这些属性是否合理?(表示在创建结果对象时可以跳过它们,或者有一个注释允许程序员指定在源映射中丢失时使用的默认值)
spring-data-jdbc - 使用 Spring Data JDBC 的嵌套数据结构
我想创建一个嵌套的数据结构。
Entity1
包含Entity2
存储在 Map 中的类型的对象。Entity2
应包含 的对象映射Entity3
。
第一部分,Entity1
工作Entity
正常。当我添加Entity3
时,会发生异常。
当我执行一个简单的测试时,发生了以下异常:
java.lang.IllegalArgumentException:org.springframework.data.util.Pair 类型的目标 bean 不是持久实体(org.hameister.filmwatcher.nested.Entity2)的类型!:org.springframework.data.util.Pair
Entity2
:
Entity3
:
当我添加另一个Entity3
应该存储在Entity2
地图中的类时,这不起作用。当我执行一个简单的测试时,发生了以下异常:
java.lang.IllegalArgumentException:org.springframework.data.util.Pair 类型的目标 bean 不是持久实体(org.hameister.filmwatcher.nested.Entity2)的类型!:org.springframework.data.util.Pair
要重现异常,只需删除类中的双斜杠Entity2
。和测试中的双斜线NestedTest
。
这是测试:
完整的源代码可以在这里找到。
java - 使用 Spring Data JDBC 在 Postgresql 中映射 Java 枚举
我希望能够将在 java 中声明的枚举映射到在 postgres 中创建的枚举。例如具有以下内容:
在java中我有这样的东西:
当我尝试像这样将某些内容保存到数据库时:
sql日志似乎很好:
但在实际的数据库字段中,我得到一个异常文本:
如果我在 postgres 列定义中将 EYE_COLOR 类型替换为 NVARCHAR2(128) 一切正常。插入了一个实际的“BROWN”值。
任何想法应该如何实施?
LE:忘记添加我的 spring 数据库驱动程序:
我也尝试使用 ENUM 定义,就像他们在列定义中直接在 H2 驱动程序规范中所说的那样,但仍然没有工作:
spring-data - 如何调整 Spring Data JDBC 的 NamingStrategy
我如何调整 Spring Data JDBCNamingStrategy
使其表现得像 Hibernate的PhysicalNamingStrategy
?
我有以下实体:
当我希望 JDBC 保留测试记录时,它会生成以下 sql:
[INSERT INTO campus (campus_name) VALUES (?)]
我现有的数据库有一个名为campusname
我在这里阅读了文档https://docs.spring.io/spring-data/jdbc/docs/1.0.2.RELEASE/reference/html/#jdbc.entity-persistence.naming-strategy我可以调整命名策略,但我不知道如何:)
感谢您的帮助!亲切的问候!托马斯
解决方案: