使用Spring JPA如何从数据库视图中读取多个参考数据

时间:2019-05-20 15:04:30

标签: java spring-data-jpa

我想使用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
}

可以/推荐吗?

1 个答案:

答案 0 :(得分:-1)

您可以尝试类似

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