【发布时间】:2016-12-10 20:03:56
【问题描述】:
我在 Spring Boot 应用程序中使用 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();
}
在我的实际场景中,这个查询将被一个复杂的本机查询替换。
任何帮助将不胜感激。
【问题讨论】:
-
您能否确保
SELECT t.* from Type_Ref t实际上是一个有效的查询?我认为应该改为SELECT * from Type_Ref t。 -
我更正了查询,但仍然要求我提供架构名称
-
这个查询不需要。 JpaRepository 具有继承(来自 CrudRepository)方法 findAll,它在此查询中按您期望的那样工作。 -->TestRepository.findAll()。 docs.spring.io/spring-data/jpa/docs/current/api/org/…
-
我已经添加了这个查询作为一个例子,实际上我有一个查询非常复杂的需求,并且需要连接很多表。在这种情况下我该怎么办
-
你解决了吗?
标签: hibernate spring-boot spring-data-jpa