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

时间:2019-05-28 11:51:22

标签: java spring-data jointable

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

我有两个具有相同String值的数据集,并且想要从两个表中检索数据而不使用joinables或外键,而是从第一个数据集中检索数据。

我正在使用简单的DataRepository界面

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;

}   

SecondData实体:

@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;

}   

和DataService

@Service
public class DataService {

    private DataRepository dataRepository;

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

    public void getBothFirstAndSecondData() {

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

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

1 个答案:

答案 0 :(得分:0)

sql查询上面的问题可以是:

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