问题标签 [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 - 如何使用 Spring Data JDBC 处理复合键
我正在尝试使用 Spring Data JDBC 访问具有复合键的表,尽管我可以找到很多关于 Spring Data JPA 如何处理此问题的信息,但似乎同样不适用于 Spring Data JDBC。
谁能给出一个快速示例,说明您需要如何使用 Spring Data JDBC 声明实体/存储库以与具有复合主键的表对话?(例如,两个字符串)
java - 一对多 Spring 数据 JDBC
我想用 Spring Data JDBC 建模 OneToMany 关系。我已经阅读了这个非常有用的博客https://spring.io/blog/2018/09/24/spring-data-jdbc-references-and-aggregates,当你想建模 ToMany 参考时,你应该使用参考:
因此,任何多对一和多对多关系都必须仅通过引用 id 来建模。
所以我有这种情况:
一个Student
可以有多个Registration
. 一个Registration
可以正好有一个Student
。如果您删除Registration
分配的Student
不应该被删除级联。
我最终得到了这个模型:
我的问题是我的建模是否正确实施?
java - 关于Spring Data JDBC + Hikari + Postgres JSONB的问题
我正在尝试使用 Spring Boot Data JDBC 和 Postgres 构建一个 API。
我有一个简单的 pojo,我想写到一张桌子上:
该表有 2 列,一个 varcharid
列和一个 jsonbdefinition
列。
使用简单的 CRUD 存储库保存 pojo 时,出现以下错误。
ERROR: column "definition" is of type jsonb but expression is of type character varying
解决方案通常是传入spring.datasourcehikari.connection-properties: stringtype=unspecified
application.yml,但我无法让它工作。
当我为 hikari 激活调试日志记录时,我可以看到我为它激活的其他设置(例如池名称)
这是我的 application.yml:
有任何想法吗?
编辑:
这是存储库界面:
java - 使用 Spring Data JDBC 的奇怪的一对多行为
我碰巧在 Spring Data JDBC(使用 Spring Boot 2.1 和必要的启动器)聚合处理中遇到了一些非常奇怪的东西。让我解释一下那个案例(我正在使用 Lombok,不过这个问题可能是相关的)......
这是我的实体的摘录:
这是一个关联的 Spring Data 存储库:
这是一个失败的测试:
事实是,通过调试,我发现地址集合(它是一个集合)包含附加地址的同一实例的两个引用。我没有看到两个引用是如何结束的,最重要的是,一个 SET(实际上是一个 LinkedHashSet,为了记录)如何处理同一个实例 TWICE!
有人知道这种情况吗?谢谢
java - 如何使用 Spring Data JDBC 建模一对一关系?
我想使用 Spring Data JDBC 和 PostgreSQL 对一对一关系进行建模,但我无法以正确的方式设置根聚合。
有以下场景:图片,SQL
每个引擎都是唯一的,car
有唯一的列engine_id
是 的外键engine.id
,同样适用truck
。因此汽车和卡车应该是根聚合,所以当汽车或卡车被删除时,引擎表中的引用行也应该被删除。
根据我对Spring Data JDBC Aggregates的理解
如果多个聚合引用同一个实体,则该实体不能是引用它的那些聚合的一部分,因为它只能是一个聚合的一部分。
所以问题是:
- 由于上面的解释,解决方法是否可行,以便通过执行 CRUD 操作
car
并将truck
更改也反映到engine
? - 使用 Spring Data JDBC 在 java 中实现这种关系的最佳方法是什么?
这是我的看法,它不起作用,但应该澄清我想要完成的事情。
汽车.java
引擎.java
卡车.java
java - Spring Data JDBC - 一对多 - Kotlin
我使用 spring boot 2.1.1.RELEASE 和 spring-data-jdbc 1.0.3.RELEASE,Kotlin 1.3.10。
我在 kotlin 中有以下简单的类定义:
以及以下数据库表定义:
我收到以下错误:
来自spring文档: “被引用实体的表应该有一个与引用实体的表命名相同的附加列。您可以通过实现 NamingStrategy.getReverseColumnName(RelationalPersistentProperty property) 来更改此名称。”
我究竟做错了什么?
更新:添加 java set 集合也无济于事:
更新 2:仍然没有修复,在 github 上添加了一个可重现的示例项目:
java - 如何处理 Spring Data JDBC 中的软删除?
有没有一种很好的方法来处理 Spring Data JDBC 中的软删除?
在 Spring Data JPA 中,我们可以添加@Where(clause="is_active=1")
注释或扩展CrudRepository
或PagingAndSortingRepository
.
由于 Spring Data JDBC 在查询中不支持 SPEL,我们不能像这样以通用方式编写它们:
那么扩展CrudRepository
或PagingAndSortingRepository
意味着为每个实体/表的每个存储库编写相同的查询?喜欢
感谢您提前回复!
java - Spring Data JDBC:DataRetrievalFailureException:无法将 [oracle.sql.ROWID] 转换为 [java.lang.Number]
我是 Spring Data JDBC 的新手,我正在努力创建一个简单的 Dto 并将其保留在数据库中。
我正在使用 Spring-Boot 2.1.1.RELEASE 和 Oracle 12 数据库。
用户Dto
用户道
我只是想像这样将它持久保存在数据库中
我得到了这个例外。
我相信这在某种程度上与@Id 是一个字符串这一事实有关。
有人可以帮我理解我做错了什么吗?为什么会有这种行为。在规范上,我没有看到和限制 Id 的类型。这是和Oracle集成的问题吗?我怎样才能解决这个问题?
感谢大家的帮助。
spring-data-jdbc - 如何在 Spring Data JDBC 中使用数组
我正在尝试将 Spring Data JDBC 用于我的 PostgreSQL 数据库。我定义了以下bean
和相应的 DDL
然后我尝试插入报告
whererepository
只是一个CrudRepository<Report, Long>
.
这给了我以下错误
我可以以某种方式告诉 Spring Data JDBC 如何映射数组类型吗?
java - 如何使用 Spring Data JDBC 选择引用的实体
如何选择与 Spring Data JDBC 的一对一关系中的引用实体?
当我在此博客上尝试以下代码时
这会在下面引发异常:
从 ResultSet 检索值时,spring data jdbc 将父实体的名称作为前缀添加到子实体的列中。但是我不能在文档上使用这个映射规则......
有没有办法自定义这个映射规则?
DDL:
[更新]
spring-data-jdbc 的版本是 1.0.4.RELEASE。
SQL 语句在这里:
完整的堆栈跟踪是