问题标签 [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.

0 投票
1 回答
1151 浏览

spring-boot - 带有 MyBatis 的 Spring Data JDBC 找不到自定义查询

我正在尝试将 Spring Data JDBC 与 MyBatis 一起使用。我对使用 CrudRepository 提供的开箱即用的 CRUD 方法以及编写在 MyBatis XML 文件中定义的附加自定义查询感兴趣。

从阅读jdbc.mybatis的说明,听起来我需要做的就是创建一个Mapper实现我想要的方法的方法(遵守规则“语句的名称是通过连接实体类型的完全限定名称来构造的使用 Mapper ") 并将方法签名添加到我的CrudRepository. 我已经这样做了,但是 Spring Data 似乎从来没有找到我的方法并给出了这个错误:

我也遵循了mybatis-spring-boot-sample中的示例,但我没有太多可以继续了解其中的内容。

问题是:

  1. 我可以向 CrudRepository 添加额外的方法来调用 MyBatis 吗?如果是这样可以解释我在下面缺少什么?
  2. 我假设对于任何其他方法,我都可以传入我想要的任何参数,而不是总是必须传入MyBatisContext?

我的 Crud 存储库

src/main/resources/application.yml

映射器 XML

依赖项(大多数是使用启动器导入的,因为我无法mvn dependency:tree正确显示,所以显示所有内容)

0 投票
1 回答
198 浏览

java - SimpleJdbcRespository 实例化的我的存储库接口如何以及在哪里?

我创建了一个自定义存储库接口,该接口由CrudRepository. 我刚用@EnableJdbcRepositoriesStartApplication.

当我测试自定义存储库中的方法时,例如save(T t)我看到它被SimpleJdbcRespository.class.

我对它感兴趣,我想知道如何以及在哪里SimpleJdbcRespository创建并实现了我的自定义存储库接口。

我应该调试哪一行代码?

0 投票
1 回答
682 浏览

java - 如何自定义嵌入对象的列名?

我正在尝试使用 Spring Data JDBC,但我无法理解是否可以自定义嵌入对象的列名(在 JPA 中我们@AttributeOverrides用于此目的)。

在我的模型中,我创建了一个类Amount,我想在不同类型的对象中重用它们。

我想将它保存为两个表中的 2 个嵌入值:housescars.

在表中houses,我希望调用列house_price_valuehouse_price_currency。在表中cars它们应该被称为car_eval_valueand car_eval_currency

问题是注解@Column只适用于属性,应该在Amount-class级别设置。这使得这个类不可重用。

在 JPA 中我会使用它,但在 JDBC 中找不到此注释:

我没有看到另一个解决方案吗?

0 投票
1 回答
411 浏览

postgresql - 不接受嵌入对象的空值

我正在尝试使用 Spring Data JDBC 持久化一个包含嵌入式对象的对象。并且它没有被保存,因为它没有通过空检查。

我创建了一个外部类来坚持。

在数据库中,我希望只有一个Outer包含字段idvalueinner_value_1的表inner_value_2。这就是我在-field上添加@Embedded注释的原因。inner

id并且value应该是必填字段。innver_value_1并且invver_value_2可能为空,

当我尝试保存 null-inner 对象(在 Kotlin 和 DB 中都可以为空)时,就会出现问题。

保存到 repo 操作会引发异常,原因是期望 inner 不为空:

困难在于,在 Kotlin 中,我无法传递具有空值字段的对象(因为它们不可为空)。

有没有办法保存一个空/空的嵌入对象?

0 投票
1 回答
57 浏览

sql-server - 使用 SQL Server 更新引用的聚合失败并显示“无法插入 ...当 IDENTITY_INSERT 设置为 OFF”

我们将最新的 Spring Data JDBC 里程碑 (1.1.0.M3) 与 SQL Server 一起使用。

更新引用的聚合(不是聚合根本身) - 失败并显示: com.microsoft.sqlserver.jdbc.SQLServerException: Cannot insert explicit value for identity column in table 'mytable' when IDENTITY_INSERT i set to OFF

更新聚合根本身可以正常工作。

有什么想法或建议吗?我们被锁定使用 SQL Server。请注意,以上内容适用于 H2 in-mem DB。

0 投票
1 回答
443 浏览

java - 从 spring-data-jdbc 的“Entities”生成脚本 sql

我需要使用 spring-data-jdbc 创建 sql 脚本。使用 spring-data-jpa 我没有问题,但我想知道是否有可能使用 spring-data-jdbc 自动执行脚本

我使用 spring-data-jpa 实现了它,但我找不到 spring-data-jdbc 的信息。

你能帮我吗。

提前致谢。

0 投票
1 回答
785 浏览

java - Spring data jdbc 似乎不适用于最终属性

我正在尝试弹簧数据 JDBC (1.1.0.M3)。我有一个包含电子邮件属性(电子邮件类)的 Formateur(教师)类。电子邮件是一个不可变的类。当我从数据库中检索所有教师时,我有以下内容

异常:java.lang.UnsupportedOperationException:无法设置不可变属性 fr.yestech.data.jdbc.domain.Email.email

看来spring data JDBC对final属性不好用!

电子邮件类(不可变类,所以没有设置器!)

应用

0 投票
2 回答
134 浏览

spring-data-jdbc - 如何加入获取关联的子关系

我有以下星座:

现在我想通过一个简单的 sql 来ApplicationUser查询login一个Query
我现在的问题是:
是否有任何与 jpa 的 join fetch 相关的 spring-data-jdbc 相关的东西,以便我可以Set<Privilege> privileges在一个声明的查询中获取关联?
还是我必须像这样触发另一个查询:

  1. ApplicationUser通过登录查询
  2. Privilege通过外键查询applicationuser

谢谢

0 投票
1 回答
2052 浏览

java - spring-data-jdbc 是如何补充 MyBatis 的?

我想了解为什么 spring-data-jdbc 提供与 MyBatis 的集成。

  • 它在解决什么问题?
  • spring-data-jdbc 如何补充 MyBatis。
  • 这只是使映射器符合存储库的问题还是超出了这个范围。
  • 当我只能使用 Mappers 时,为什么我要结合使用 MyBatis 和 spring-data-jdbc。
0 投票
1 回答
417 浏览

spring-boot - 我可以在 Spring Boot 1.5.x 中使用“Spring Data JDBC”吗?

我试图弄清楚 Spring Boot 1.5.20.RELEASE (= Spring Framework 4.3.23.RELEASE) 使用哪个版本的 spring-data-jdbc - 但我在任何地方都找不到该信息。

是因为 spring-data-jdbc 仅适用于 Spring Boot 2.x / Spring Framework 5.x 吗?

具体来说,我想使用@Query,@EnableJdbcRepositories等。

当我查看 Spring Data Ingalls SR20 的发行说明(与 Boot 1.5.20.RELEASE / Framework 4.3.23.RELEASE 匹配的发行系列)时,看起来 spring-data-jdbc 仅在 Lovelace 中受支持(Boot 2.x和框架 5.x):https ://spring.io/blog/2019/04/10/spring-data-lovelace-sr6-kay-sr14-ingalls-sr20-released

编辑和回答:根据@JensSchauder 的评论:spring-data-jdbc 是一个从头开始创建的(相当)新项目。没有办法将它与 Spring Framework 4 一起使用。