java - 我可以从多个没有连接或外键的表中获取数据吗

标签 java spring-data join

我正在尝试从数据库的两个表中获取单个数据。这些表没有外键,也没有可连接项。我正在使用 spring-data 检索第一个数据集所需的数据。

我有两个具有公共(public)字符串值的数据集,并且想要从两个不使用可连接或外键的表中检索数据,从第一个数据集中检索数据。

我正在使用简单的 DataRepository 接口(interface)

import org.springframework.data.jpa.repository.JpaRepository;

public interface DataRepository extends JpaRepository<FirstData, Long> {

    DataService getById(Long id);

}

FirstData 实体:

@Data
@Entity
@Table(schema = "someschema", name = "firstdata")
public class FirstData {

    @Id
    @Column(name = "id")
    private Long uuid;

    @Column(name = "name")
    private String name;

    @Column(name = "type")
    private String type;

}   

第二个数据实体:

@Data
@Entity
@Table(schema = "someschema", name = "seconddata")
public class SecondData {

    @Id
    @Column(name = "id")
    private Long uuid;

    @Column(name = "type")
    private String type;

    @Column(name = "value")
    private String value;

}   

和数据服务

@Service
public class DataService {

    private DataRepository dataRepository;

    public DataService(DataRepository dataRepository){
        this.dataRepository = dataRepository;
    }

    public void getBothFirstAndSecondData() {

        List<FirstData> firstDataSet = dataRepository.findAll();
    }
}

我需要从两个表中获取数据,但不想修改表结构、进行可连接或添加外键。另外,我不想添加另一个存储库编写关于第二个数据集的代码。我只需要在第一个数据集结果中获得第二个数据集的“值”。解决此类数据检索的最简单方法是什么?

最佳答案

sql查询上述问题可以是:

select value from seconddata where id IN (select id from firstdata)

关于java - 我可以从多个没有连接或外键的表中获取数据吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56341644/

相关文章:

Java Swing - JFreeChart 应用运行缓慢

java - 使用字符串作为值名称和输入来查找文件

java - 获取 MongoDB 当前集合名称

mysql - 加入表时为每个单个 ID 添加记录

java - 在 Eclipse-Update 之后,refactor-rename 不再起作用

JavaFX - 如何检查可编辑 TableView 中的用户输入

java - 返回 List<Object[]> 的 Spring Data

java - 为什么 Spring 不为关系数据库提供响应式(Reactive)(非阻塞)客户端?

mysql - CakePHP:在非 HABTM 关系上使用联接表

SQL - 1 个父表,2 个子表 - 为子表中的每一行返回单行