问题标签 [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.
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中的示例,但我没有太多可以继续了解其中的内容。
问题是:
- 我可以向 CrudRepository 添加额外的方法来调用 MyBatis 吗?如果是这样可以解释我在下面缺少什么?
- 我假设对于任何其他方法,我都可以传入我想要的任何参数,而不是总是必须传入
MyBatisContext
?
我的 Crud 存储库
src/main/resources/application.yml
映射器 XML
依赖项(大多数是使用启动器导入的,因为我无法mvn dependency:tree
正确显示,所以显示所有内容)
java - SimpleJdbcRespository 实例化的我的存储库接口如何以及在哪里?
我创建了一个自定义存储库接口,该接口由CrudRepository
. 我刚用@EnableJdbcRepositories
在StartApplication
.
当我测试自定义存储库中的方法时,例如save(T t)
我看到它被SimpleJdbcRespository.class
.
我对它感兴趣,我想知道如何以及在哪里SimpleJdbcRespository
创建并实现了我的自定义存储库接口。
我应该调试哪一行代码?
java - 如何自定义嵌入对象的列名?
我正在尝试使用 Spring Data JDBC,但我无法理解是否可以自定义嵌入对象的列名(在 JPA 中我们@AttributeOverrides
用于此目的)。
在我的模型中,我创建了一个类Amount
,我想在不同类型的对象中重用它们。
我想将它保存为两个表中的 2 个嵌入值:houses
和cars
.
在表中houses
,我希望调用列house_price_value
和house_price_currency
。在表中cars
它们应该被称为car_eval_value
and car_eval_currency
。
问题是注解@Column
只适用于属性,应该在Amount
-class级别设置。这使得这个类不可重用。
在 JPA 中我会使用它,但在 JDBC 中找不到此注释:
我没有看到另一个解决方案吗?
postgresql - 不接受嵌入对象的空值
我正在尝试使用 Spring Data JDBC 持久化一个包含嵌入式对象的对象。并且它没有被保存,因为它没有通过空检查。
我创建了一个外部类来坚持。
在数据库中,我希望只有一个Outer
包含字段id
、value
和inner_value_1
的表inner_value_2
。这就是我在-field上添加@Embedded
注释的原因。inner
id
并且value
应该是必填字段。innver_value_1
并且invver_value_2
可能为空,
当我尝试保存 null-inner 对象(在 Kotlin 和 DB 中都可以为空)时,就会出现问题。
保存到 repo 操作会引发异常,原因是期望 inner 不为空:
困难在于,在 Kotlin 中,我无法传递具有空值字段的对象(因为它们不可为空)。
有没有办法保存一个空/空的嵌入对象?
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。
java - 从 spring-data-jdbc 的“Entities”生成脚本 sql
我需要使用 spring-data-jdbc 创建 sql 脚本。使用 spring-data-jpa 我没有问题,但我想知道是否有可能使用 spring-data-jdbc 自动执行脚本
我使用 spring-data-jpa 实现了它,但我找不到 spring-data-jdbc 的信息。
你能帮我吗。
提前致谢。
java - Spring data jdbc 似乎不适用于最终属性
我正在尝试弹簧数据 JDBC (1.1.0.M3)。我有一个包含电子邮件属性(电子邮件类)的 Formateur(教师)类。电子邮件是一个不可变的类。当我从数据库中检索所有教师时,我有以下内容
异常:java.lang.UnsupportedOperationException:无法设置不可变属性 fr.yestech.data.jdbc.domain.Email.email
看来spring data JDBC对final属性不好用!
电子邮件类(不可变类,所以没有设置器!)
应用
spring-data-jdbc - 如何加入获取关联的子关系
我有以下星座:
现在我想通过一个简单的 sql 来ApplicationUser
查询login
一个Query
。
我现在的问题是:
是否有任何与 jpa 的 join fetch 相关的 spring-data-jdbc 相关的东西,以便我可以Set<Privilege> privileges
在一个声明的查询中获取关联?
还是我必须像这样触发另一个查询:
ApplicationUser
通过登录查询Privilege
通过外键查询applicationuser
谢谢
java - spring-data-jdbc 是如何补充 MyBatis 的?
我想了解为什么 spring-data-jdbc 提供与 MyBatis 的集成。
- 它在解决什么问题?
- spring-data-jdbc 如何补充 MyBatis。
- 这只是使映射器符合存储库的问题还是超出了这个范围。
- 当我只能使用 Mappers 时,为什么我要结合使用 MyBatis 和 spring-data-jdbc。
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 一起使用。