问题标签 [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 - 使用手动 PK(非自动生成)插入带有 Spring 数据 JDBC CrudRepository 的 Oracle
使用 Spring Data JDBC v1.0.4(不是 JPA)在 Oracle DB 中插入时出现以下错误:
似乎默认实现总是需要一个自动生成的键,但我的表的主键是一个字符串。
要持久化的实体:
存储库:
对存储库的调用:
异常在insert
方法的最后一行抛出org.springframework.data.jdbc.core.DefaultDataAccessStrategy
:
问题是 KeyHolder 接口有一个getKey
返回 Number 的方法,Oracle 作为生成的 KEY 返回 ROWID ...但是实体 PK 没有生成,ID 是在插入之前设置的。
我无法理解该代码有什么问题,欢迎提供任何帮助。
spring-data-jdbc - 支持 byte[] 的映射
我们的实体包含字段byte[] fileContent
。
spring-data-jdbc 似乎没有将其保存在数据库中;实际上只保留了 1 个字节,而不是整个数组。
有没有办法使用 Spring Data JDBC 持久化二进制内容?谢谢
java - Spring 数据 JDBC 无法创建存储库 Bean - “实体被标记为 @NonNull 但为空”
我刚刚开始探索 Spring Data JDBC。我有一个简单的数据库(postgres),其中包含我要查询的问卷表:
和 Java 类:
(配置灵感来自这里)
(实体)
(存储库):
但是,在启动应用程序时,我无法为存储库创建 bean,并出现以下错误,并且无法弄清楚我在实例化此存储库时做错了什么:
任何帮助将不胜感激 - spring data jdbc 看起来很有希望;但是,由于无法实例化存储库,我被阻止了... :(
编辑:添加了实体注释(仍然是同样的错误)
spring-data - Spring Data JDBC 中的乐观锁
我注意到 Spring Data JDBC 似乎没有实现乐观锁定(类似于 JPA 的 @Version 注释)。
我正在考虑创建一个@Modifying
考虑版本字段并返回boolean
以手动检查更新是否成功的查询。但恐怕这种方法仅限于简单的实体,而不是意味着多个表的聚合。
为聚合实现乐观锁定的最佳方法是什么?
java - Set 的映射需要 Id?
我有一个spring data jdbc的映射问题如下:
Student
实体:
接下来我有一个StudentSubjectRegistration
实体:
当我运行测试以找到一个特定的学生时,如下所示:
控制台说有一个 sql 语句发出:
Executing prepared SQL statement [SELECT student.studentid AS studentid, student.userid AS userid, student.matriculationnumber AS matriculationnumber, student.email AS email FROM student WHERE student.studentid = ?]
至于我的理解,应该发出另一个 sql 语句来获取相关的注册,不是吗?
相反,发生了一个异常:
java.lang.IllegalStateException: Required identifier property not found for class de.thd.awp.student.StudentSubjectRegistration!
我必须StudentSubjectRegistration
用一个建模@Id
吗?
StudentSubjectRegistration
不应该是聚合根。它应该Student
是保存其注册的参考。
我错过了什么吗?
另外请注意,我在这篇博文https://spring.io/blog/2018/09/27/what-s-new-in-spring-data-lovelace的启发下尝试对实体不变性进行建模...
我做对了吗?
谢谢你的帮助!
spring - 如何使用静态工厂方法对不可变实体建模
您好,我有一个关于建模不可变实体的正确方法的问题:
考虑这个实体(根据 Jens Schauder 的建议编辑):
所以这个实体应该是不可变的,并提供了一个静态的of
创建方法。还RequiredArgsConstructor
构建了一个私有构造函数,尽管它应该为每个定义的所有最终/非空字段创建一个可见的包。总之我做了AllArgsConstructor
这么说。
此处的此文档https://docs.spring.io/spring-data/jdbc/docs/current/reference/html/#mapping.fundamentals详细介绍了有关“对象创建内部”的部分说明了改进处理的4个方面-“ Spring Data 使用的构造函数不能是私有的“除其他外,我认为这些都已实现。
所以我的问题是:这个图示的实体在不变性和弹簧数据 jdbc 内部优化映射方面是否正确?
编辑:
intellij 中的 lombok 插件似乎存在错误,阻碍了access = AccessLevel.PACKAGE
正确的工作。见这里:
https ://github.com/mplushnikov/lombok-intellij-plugin/issues/584
虽然问题已经关闭,但新版本的插件不可用...
spring-mvc - Spring4 + SpringDataJDBC,如何在配置文件中为 MyRepository 定义 bean
注意:我没有使用 Spring Boot
我收到如下错误
org.springframework.beans.factory.NoSuchBeanDefinitionException:没有为依赖项找到类型为 [com.repository.MbrEnrollRepository] 的合格 bean:预计至少有 1 个 bean 有资格作为此依赖项的自动装配候选者。依赖注释:{}
这是我的存储库,它扩展了 spring data jdbc 的 crud 存储库
我在我的服务类中调用 countItems() 方法。据我所知,spring 容器将创建一个存储库实例,为此我们需要在配置类中定义存储库类型的 bean。我还没有找到任何地方,如何为存储库定义一个 bean。
如 spring 文档中所示,我在我的配置类中定义了所需的 bean。
我的控制器类
是否可以将 Spring 数据 JDBC 与 spring 4+ 一起使用?如果是,请帮助我....
spring-data - 如何使用 spring-data-jdbc 实现批量插入
是否可以以某种方式使用 spring-data-jdbc 实现批量插入?或者我可以使用这个 spring-data 实现访问 JDBCTemplate 吗?
spring-data-jdbc - Spring jdbc存储库多对多连接表列名
在 spring-data-jdbc 中存在多对多关系的情况下,我找不到在哪里为联合表定义自定义列名。
我从我的 fork 中的https://github.com/spring-projects/spring-data-examples扩展了聚合示例: https ://github.com/konstiak/spring-data-examples/commit/2a901bb4d81c35406da393b1368109136ae21f5f 。
如果结合表有列 [color, lego_set] 它开箱即用。但我想为这些列自定义名称 [color_id, lego_set_id]。'color_id' 很清楚。我可以通过 ColorRef 实体中的 @Column 注释来定义它。但是如何定义 LegoSet.id 的列将存储在“lego_set_id”中?
已解决我只需要在 LegoSet 实体中的颜色字段上定义 @Column(value = "lego_set_id") 。