spring jpa创建双括号查询
我使用Spring引导与JPA(EclipseLink的)和Oracle 11.我有CrudRepository
接口:
public interface TransportDefRepository extends CrudRepository<TransportDef, Long> { public List<TransportDef> findByNameInOrderByNameAsc(List<String> names);
}
调用findByNameInOrderByNameAsc
方法创建查询:
SELECT ID, NAME,FROM TRANSPORT_DEFS WHERE (NAME IN (('A','B'))) ORDER BY NAME ASC
甲骨文抛出异常:
ORA-00907: missing right parenthesis
难道我做错了什么?为什么在生成的查询中有双括号?
回答:
我的解决方案:
@Query("select t from TransportDef t where t.name in ?1 order by t.name asc")public List<TransportDef> findByNameInOrderByNameAsc(List<String> names);
使用@Query注释,eclipselink创建查询:
SELECT ... FROM TRANSPORT_DEFS WHERE (NAME IN (?,?,?)) ORDER BY NAME ASC
这只是解决方法-我不知道为什么Spring Data JPA在没有此注释的情况下会生成无效查询…
以上是 spring jpa创建双括号查询 的全部内容, 来源链接: utcz.com/qa/426555.html