我正在尝试从两个数据库表中获取单个数据。这些表没有外键,也没有关节。我正在使用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();
}
}
我需要从两个表中获取数据,但不想修改表结构,使其可联合或添加外键。另外,我不想在第二个数据集附近添加另一个存储库写代码。我只需要在第一个数据集结果中获得第二个数据集的“值”即可。解决此类数据检索最简单的方法是什么?
答案 0 :(得分:0)
sql查询上面的问题可以是:
select value from seconddata where id IN (select id from firstdata)