问题标签 [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 投票
2 回答
2583 浏览

spring-boot - 更新到 Spring Boot 2.2.1 后的 NoSuchBeanDefinitionException

将现有代码从 spring boot 2.2.0 升级到 2.2.1 后,我遇到了一个奇怪的问题。
似乎我的 spring 数据 jdbc 存储库不再以某种方式被扫描:

此外,在引导 2.2.1 中也有此信息调试行:

当我将所有内容切换回引导 2.2.0 时,信息消息以及上述异常都消失了。

有什么提示吗?

编辑
实体

存储库

到目前为止,@Table如果您不想更改数据库上的表名,则不需要注释。此外@EnableJdbcRepositories,以这种方式扫描每个文档:

如果没有配置基本包,则使用配置类所在的包。 https://docs.spring.io/spring-data/jdbc/docs/current/reference/html/#jdbc.java-config

那里发生了奇怪的事情:)

0 投票
1 回答
452 浏览

jointable - 在 CrudRepository(Spring data jdbc) 上使用 @query 和表连接

我正在尝试使用 @query 的 spring data jdbc,但遇到了一个问题:如果我有一个查询连接 2 个这样的表:

我如何得到回应?官方的Spring Data JDBC、References 和 Aggregates没有给出任何提示。有什么建议吗?

0 投票
4 回答
5583 浏览

spring - 使用 Spring Data JDBC 和 CrudRepository 接口的多个数据源

我有一个不简单的问题:

我的情况:

  • 使用Spring Data JDBC
  • 使用两个数据库
  • 的使用CrudRepository

正如您在Spring Data JDBC中看到的那样,您可以使用Spring开箱即用地获得所有 Crud 操作 - 无需显式实现!extends CrudRepository

这是一个简单的 4 步过程:

  1. 定义你的属性
  2. 定义你的实体
  3. 定义一个扩展 CrudRepository 的接口和
  4. 使用该接口

但是在使用两个数据库的情况下,有一个 5. 必须定义一个@Configuration类的步骤。

我做了这5个步骤如下:

0.Pom.xml

1. 定义你的属性

应用程序属性

2.定义您的实体(每个数据库一个)

Student.java // 用于 db1

Teacher.java // 用于 db2

3. 定义您的存储库(每个数据库一个)

StudentRepository.java // 用于 DB1

TeacherRepository.java // 对于 DB2

4. 定义您的@Configuration 类(每个数据库一个)

  • 你也可以在一门课上两门课,但我是这样做的:

Db1Config.java

Db2Config.java

5.利用你的接口存储库

应用程序.java

这些工作正常!

这里的问题是,TeacherRepository不是查询 DB2,而是查询 DB1。

这会导致错误:[...]: Unknown table name:TEACHER

有谁知道我如何配置 TeacherRepository 使用 DB2 作为 DataSource ?

# 回答前请注意:

这里我使用的是Spring Data JDBC而不是Spring Data JPA。我知道它可以在Spring Data JPA中工作,如此处所述https://www.baeldung.com/spring-data-jpa-multiple-databases。我也知道我可以利用这些JdbcTemplate。但是这样,我必须自己编写这些 CRUD 操作,这些操作在这里描述,这不是需要的。

一个答案当然会很好。

谢谢你的帮助。

0 投票
1 回答
456 浏览

spring-data-jdbc - Spring Data JDBC不生成派生查询

我正在使用 SpringBoot 2.2.1.RELEASE 自动引入的 Spring Data JDBC (v1.1.1)。对于下面的存储库,该方法应在启动时自动派生查询。

相反,我得到了这个..

我的实体看起来像..

知道为什么我会遇到这个问题吗?

0 投票
1 回答
42 浏览

spring-data-jdbc - StatementBuilder 是供外部使用的吗?

我正在使用 spring-data-jdbc 实现一个项目,并找到了 Statement Builder API。我可以使用这个 API 来构建本地 sql 存储库吗?

0 投票
2 回答
969 浏览

java - spring-data-jdbc:查询包含具有 1-n 关系的实体

如何为包含 1-n 引用的实体编写查询?

基于spring-data-jdbc示例,我将使用以下单元测试对其进行解释:

这模拟了LegoSet参考 2Model秒。使用repository.findByName()自定义查询进行注释;这repository.findAll()是标准的 spring-boot-data 方法CrudRepository(仅作为参考)。

版本 1 中的自定义查询:

在此版本中,测试失败 w/

好的,之后我添加另一个JOINmodel

现在测试失败了

那么我该如何正确编写该查询呢?

0 投票
1 回答
403 浏览

spring-boot - spring-data-jdbc:查询实体,包含与 JOOQ 的 1-n 关系

我正在尝试借助 JOOQ(基于 spring-data-jdbc)加载包含对另一个实体(1-n)的引用的实体。

我开始扩展spring-data-jdbc-jooq-example

具有 1-n 关系的调整模型:

我写了两个查询,一个通过@Query-Annotation 中的CrudRepository和一个JOOQJooqRepository.

(对我来说,这两种方法都应该返回相同的结果集 b/c 他们执行相同的查询?!)

但是我的单元测试失败了:

JOOQ正如您在以下输出中看到的那样,不会加载查询的子类别:

这是使用的数据库-shema:

0 投票
1 回答
57 浏览

java - 实体需要什么状态才能触发 [update] 操作?

版本:1.1.2.RELEASE

我有以下简单的测试代码

JobTask 聚合根包含@Id @Version @CreatedDate @CreatedBy @LastModifiedBy @LastModifiedDate注释。

  1. 为什么InsertRoot操作总是触发?在第二个save()操作中,实体已经有了IDValue,我明白此时update()应该触发该操作。
  2. 是否有关于 的文档@Version?我没有找到任何官方的东西。
0 投票
1 回答
530 浏览

java - Spring Data JDBC invert OneToOne navigation

I have an existing data scheme I'm reluctant to change. There are two entities/tables: parent and child, with parent having the foreign key column child_id. It's a 1-to-1 relationship.

The problem is: the magic behind the scenes expects the child table to have the foreign key column (the exception mentions a ...JOIN ON child.parent = parent.id). Is it possible to inverse this to match the existing scheme? (I know it is with hibernate, but I'd like to stay with JDBC).

Relevant code:

Somewhat related question: Spring Data JDBC invert OneToMany navigation

0 投票
1 回答
694 浏览

java - Spring Data JDBC 反转 OneToMany 导航

我有一个不愿意更改的现有数据方案。有两个实体/表:parentchild,其中 child 具有外键列parent_id。这是一个 1(父)对 n(子)的关系。

在 Spring Data JDBC 中是否可以有Child类引用但Parent没有属性?也许两者兼而有之?(我知道休眠是可能的,但我想继续使用 JDBC)。ParentSet<Child>

即我想要这样的东西:

有点相关的问题:Spring Data JDBC invert OneToOne navigation