我正在尝试从数据库的两个表中获取单个数据。这些表没有外键,也没有可连接项。我正在使用 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/