6

正如我在文档中所读到的,Spring Data JDBC 支持像 Spring Data JPA 这样的查询创建

例如: findByProperty(Property property)

我的问题 :

Spring Data JDBC 是否支持我们创建查询并使用它们的属性连接两个(或更多)实体以查找 Spring Data JPA 中的结果的情况?

例子:

@Entity
class Person {
  private final @Id Long id;
  private final Car car;
}

@Entity
class Car {
  private final @Id Long id;
  private String color;
}

interface PersonRepository extends CrudRepository<Person, Long> {
  List<Person> findByCarColor(Color red);
}

interface CarRepository extends CrudRepository<Car, Long> {
}

我想找到所有至少拥有一辆红色汽车的人。该方法会给出正确的输出吗?

4

1 回答 1

9

恐怕您误读了文档。

Spring Data JDBC 1.0 版本不支持查询派生。它肯定会在不久的将来添加。

误解源于这样一个事实,即所有 Spring Data 文档都以概述模块原则上可用的功能的一般部分开始。这部分对所有模块都是相同的。然后是描述实际功能的模块特定部分。不幸的是,不支持查询派生这一事实只能从模块特定部分中未提及的事实中扣除。

一旦这个特性到来,它很可能会支持跨实体的查询,但至少在开始时只支持相同聚合的实体。

聚合的概念对于 Spring Data JDBC 非常重要,这就是为什么有一篇关于这个概念及其对 Spring Data JDBC 的影响的博客文章,我强烈推荐阅读。

于 2018-10-09T05:07:30.820 回答