首页 > 解决方案 > 使用 Spring JPA 如何从 DB 视图中读取多个参考数据

问题描述

我想从多个数据库视图中获取只读数据,使用 Spring JPA
该数据只是参考数据 颜色,打印机类型,国家等
数据 参考数据始终对齐 [键,值]
例如,我有多个数据库视图:

v_color:   R,RED, # B,BLUE    # G, GREEN     etc
v_country: US,USA # FR,France # TB, Free Tibet   etc
v_printer: EP, Epson # HP, HP # KY, Kyocera 

我想为他们提供相同的 ReferenceData @Entity 类

@Entity
@Table(name="V_REF_DATA" , schema="APP")
public class ReferenceData {

    @Id
    @Column(name = "ID")
    private Long id; //The rownum!

    @Column(name="LABEL")
    String label;

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

像这样的单个存储库:

public interface ReferenceDataRepository extends JpaRepository<ReferenceData ,String> {

    @Query(value = "SELECT ID,LABEL,VALUE  FROM v_color nativeQuery = true)
    List<ReferenceData> getColorValues();

    @Query(value = "SELECT ID,LABEL,VALUE  FROM v_country", nativeQuery = true)
    List<ReferenceData> getCountryCodesValues();

    // same for all others
}

有可能/推荐吗?

标签: javaspring-data-jpa

解决方案


你可以试试这样的

TypedQuery< ReferenceData> query =
em.createNamedQuery(SELECT ID,LABEL,VALUE  FROM v_color);
List<ReferenceData> results = query.getResultList();

推荐阅读