我在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();
}
在我的实际场景中,此查询将被复杂的本机查询替换。
任何帮助都将非常感激。
答案 0 :(得分:4)
您可以使用{h-schema}
。
所以你的查询应该是这样的:
@Query(value="SELECT t.* from {h-schema}Type_Ref t")
public List<Object[]> findAllTypes();
h-schema和表名之间没有点,这是自动添加的。