问题标签 [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官方文档中的问题
这是官方文档中的一个例子(你需要向下滚动一点):</p>
我对此有几个问题。
Person withId(Long id)
示例中不存在引用的构造函数吗?Person withId(Long id)
官方文档中有这样的描述:“相同的模式通常适用于存储管理的其他属性,但可能需要更改以进行持久化操作”。是不是可以这样理解:成功保存实例后,WithOutIdPerson
可以用于其他字段更改并再次保存,SavedPerson
还可以用于其他上层操作?为什么
of ()
在示例中调用工厂的最后一步?
谢谢~
java - 使用 Spring Data JDBC 中不支持的类型的查询参数?
我试图在我的存储库中编写一个类似于此的查询方法
执行代码时出现以下错误:
org.postgresql.util.PSQLException:无法推断要用于 java.time.Instant 实例的 SQL 类型。使用带有显式类型值的 setObject() 来指定要使用的类型。
我是否忘记了什么,或者 Spring Data Jdbc 根本不支持将 Instant 用作参数?如果是这样,将来是否计划提供这样的支持?
java - 使用 Spring Data JDBC 持久化资金
让我们采取以下实体:
和相应的存储库:
是否可以在不手动重写提供的 SQL 查询的情况下将 Item 保存在单独的列中具有金额和货币的关系数据库表中ItemRepository
?
DDL 可能类似于:
使用自定义将钱存储在单个VARCHAR
列中@WritingConverter
,@ReadingConverter
这是我得到的最接近的,但这不是一个选项,因为我需要在数据库级别明确区分金额和货币。
joda.money
如果这会有所作为,我可以替换javax.money
,但是我不想引入我自己的自定义类型来处理域层中的资金。
java - 从 Spring 集成测试运行时,Spring DATA JDBC 无法注入存储库
Spring Boot JDBC带有Spring Boot
:2.2.4.RELEASE,在 gradle dep 中:
-data-jpa 的部门(参见“重复问题”)
仅在从集成测试运行时出现此错误:
我的存储库被定义为这个。一个界面。它不能有构造函数。
它的注入方式是:
集成测试本身:
它曾经适用于测试中较低的弹簧靴版本。它工作正常。从 IDE 开始测试。它工作正常。当启动应用程序并点击端点时 - 它确实注入了存储库。
问:如何使 Spring DATA JDBC 没有这个“A constructor parameter name must not be null to be used with Spring Data JDBC!” spring 数据 jdbc 存储库的错误?
更新:刚刚检查并仔细检查。
MyData2
是一样的 - 使用默认 + all arg 构造函数。一切都是手工制作的。没有lombok
。
更新 2:
如果我创建一个文件夹“jdbc”,则将配置类放在那里,@ EnableJdbcRepositories
并将我的所有数据 jdbc 存储库“放在一个模块中”。我仍然有同样的例外。IF 从集成测试运行。
java - Spring Data JDBC - POJO中的Clob列到字符串属性不起作用
我有一个带有DESCRIPTION
CLOB 类型列的表的 Oracle 数据库。
我的 POJO 看起来像这样:
我的存储库看起来像这样
当我调用存储库方法时,我收到一条错误消息,指出没有将 CLOB 转换为字符串的转换器。
任何帮助表示赞赏。
spring-data-jdbc - Spring-Data-JDBC 是否支持 Oracle 标识列?
我正在尝试使用 Oracle 标识字段(它是某种自动增量)保存到表中。但是一旦我这样做了,我就会得到一个“保存后身份不能为空”的异常?
目前不支持这种情况还是我需要特殊配置?
顺便说一句:它适用于 JPA。
spring - 我可以在没有使用 Spring Boot 的任何数据库的情况下使用 Spring Data JDBC 模拟 CrudRepository 吗?
我正在开发一个使用 Spring Boot 2 和 Spring Data JDBC 的应用程序。最终的应用程序将使用 MySQL。
我目前有一个持久层和一个服务层以及一些从 CrudRepository 派生的存储库。
对于我的单元测试,我真的想在没有任何数据库的情况下进行单元测试。甚至没有 HSQL。我知道这里有几种不同的哲学可以订阅,但我想切换到纯单元测试,看看它是如何发挥作用的。我将在集成测试中使用数据库。
我的application.properties
测试文件夹中有一个单独的文件夹,其中我有一个单独的测试配置。
如果没有定义数据源,Spring Boot 将默认使用 HSQL application.properties
。但同样,我想在没有任何数据库的情况下运行我的测试,并且只模拟我的 CrudRepository 实现。我尝试通过在我的以下内容中使用不同的变体来禁用 Spring Boot 的数据库自动配置application.properties
:
在我的测试中,我试图做这样的事情:
我在服务中使用基于构造函数的依赖注入。但是,我从 Spring 收到如下错误:
我想要的是一个模拟的 userRepository,我可以在其中预先配置一个伪造的存储库以返回虚拟数据。但似乎删除数据库配置会完全删除 CrudRepository,因此 spring boot 应用程序的任何部分都无法启动。还是我错过了其他东西。
我正在使用 Eclipse、Maven、Mockito 和 JUnit5。我应该注意,如果我对测试 mysql 数据库运行“单元测试”,那么一切正常,所以我知道代码或测试或一般设置没有任何问题。问题仅在我想摆脱数据库时才开始。
我是一名初级 Java 开发人员,这样做是为了好玩,所以我可能会遗漏一些明显的东西。在网上搜索 Spring Data JDBC 很困难,因为我几乎只找到与 JPA 相关的解决方案。
spring - Spring-fu-Kofu:无法连接“NamedParameterJdbcTemplate”
我正在玩 Kofu 功能性 Bean DSL。我正在将 Spring-Data-JDBC 与 Spring-MVC 一起使用,并尝试自动装配 NamedParameterJdbcTemplate。但是,我一直收到这个错误,在运行测试时没有找到任何 bean。在基于注释的方法中,我们不必提供显式的 NamedParameterJdbcTemplate。我的示例应用程序在这里:https ://github.com/overfullstack/kofu-mvc-jdbc 。和 PFB 中的一些代码片段:
这是错误:
请帮忙,谢谢
java - spring-data-jdbc 中的参数化顺序
我正在努力使订单参数化。最好的就是拥有
是否可以转:
进入:
我正在使用 spring-data-jdbc 1.1.3.REELASE 版本。即使只为列名这样做也会对我有很大帮助。
spring-data-jdbc - Spring data jdbc:如何使用来自 org.springframework.data.geo 包的 Point
我有一个实体
点来自org.springframework.data.geo包
和它的 Postgres 模式
当我尝试通过 spring data jdbc 存储库(arenaRepository.findAll())使用实体时
我收到一个错误
请求处理失败;嵌套异常是 org.springframework.jdbc.BadSqlGrammarException: PreparedStatementCallback; 错误的 SQL 语法 [SELECT arena.id AS id, arena.y AS y, arena.x AS x FROM arena]; 嵌套异常是 org.postgresql.util.PSQLException:错误:列 arena.y 不存在
我看到 SQL 与架构不匹配。但是是否可以通过 Spring Data Jdbc 使用“geo”类?
我尝试将位置介绍为列表并且它有效。这是正确的方法吗?