更新,因为问题被问到
这一问题由公共关系确定:
https://github.com/spring-projects/spring-data-jpa/pull/283
描述
我已经配置了spring-boot +spring jpa项目。我的存储库还有下一个自定义查询:
@Repository
public interface MyEntityRepository extends JpaRepository<MyEntity, String>, QueryDslPredicateExecutor<MyEntity> {
...
@Query(
value = " SELECT me.name FROM #{#entityName} me ",
countQuery = " SELECT COUNT(me.name) FROM MyEntity me "
)
Page<String> findAllMyEntityNames(final Predicate predicate, final Pageable pageable);
...
}
一切都很顺利。但是对我来说,更好的方法是在任何地方使用#{#entityName}
-在查询和countQuery中,即:
countQuery = " SELECT COUNT(me.name) FROM #{#entityName} me "
所以,我的问题是:
ps:如果我在countQuery中使用countQuery,则会出现下一个异常:
...
Caused by: java.lang.IllegalArgumentException: org.hibernate.QueryException: unexpected char: '#' [ SELECT COUNT(me.name) FROM #{#entityName} me ]
at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1679) ~[hibernate-entitymanager-5.0.11.Final.jar:5.0.11.Final]
...
Caused by: org.hibernate.QueryException: unexpected char: '#' [ SELECT COUNT(me.name) FROM #{#entityName} me ]
...
谢谢
你好,马克西姆
发布于 2018-08-24 01:44:51
https://stackoverflow.com/questions/45579346
复制相似问题