存储库

时间:2016-08-04 15:35:44

标签: hibernate spring-boot spring-data-jpa

我在Spring Boot Application中使用Spring-dat-jpa并尝试在存储库中执行本机查询。当我使用表名附加模式名称但它不能独立工作时它工作正常,并且不会像我为我定义的实体类那样从application.properties文件中选择模式名称

我使用下面的属性来设置默认架构,它适用于实体类和命名查询。但是当我在@query中编写任何本机查询时,它开始抱怨模式名称:

spring.jpa.properties.hibernate.default_schema=NPS_WO

以下是我的询问:

@Repository
public interface TestRepository extends JpaRepository<TypeRef,Long> {


    @Query(value="SELECT t.* from Type_Ref t")
    public List<Object[]> findAllTypes();

}

在我的实际场景中,此查询将被复杂的本机查询替换。

任何帮助都将非常感激。

1 个答案:

答案 0 :(得分:4)

您可以使用{h-schema}

访问原生查询中的默认架构名称

所以你的查询应该是这样的:

@Query(value="SELECT t.* from {h-schema}Type_Ref t")
public List<Object[]> findAllTypes();

h-schema和表名之间没有点,这是自动添加的。