如何通过Spring JPA开头的数字查找所有数字?

时间:2018-10-11 20:18:23

标签: spring-boot jpa

MyStore类包含itemNbr整数。我想找到所有itemNbr以xxxxxx开头的地方

我正在像这样使用Spring Repository。这就是我尝试过的

@Repository 
public interface TestRepository extends CrudRepository<MyStore, Long> {
    List<MyStore> findByItemNbrStartsWith(int itemNbr);
} 

但这会引发异常

java.lang.IllegalArgumentException: Parameter value [2%] did not match expected type [java.lang.Integer (n/a)]
    at org.hibernate.query.spi.QueryParameterBindingValidator.validate(QueryParameterBindingValidator.java:54) ~[hibernate-core-5.2.17.Final.jar:5.2.17.Final]
    a

1 个答案:

答案 0 :(得分:1)

使用默认方法不能。

但是您可以编写自己的@Query这样的内容, 然后将itemNbr作为字符串传递。

@query("from MyStore where CAST(itemNbr as text) like CONCAT(:itemNbr, '%')")
List<MyStore> findByItemNbrStringStartsWith(String itemNbr);