Java %类似于spring JpaRepository中针对List类型属性的%Query<;字符串>;

Java %类似于spring JpaRepository中针对List类型属性的%Query<;字符串>;,java,sql,spring-data-jpa,spring-data,jpql,Java,Sql,Spring Data Jpa,Spring Data,Jpql,我想写一个查询来查找字段中包含特定字符串的记录,该字段是 在我的实体中定义为列表 这是我的JPA实体: @Entity public class Bank extends EntityBase<Bank> { . . . @Column(name = "sms_numbers") @Convert(converter = StringListConverter.class) private List<Stri

我想写一个查询来查找字段中包含特定字符串的记录,该字段是 在我的实体中定义为列表

这是我的JPA实体:

@Entity
public class Bank extends EntityBase<Bank> {
    .
    .
    .

    @Column(name = "sms_numbers")
    @Convert(converter = StringListConverter.class)
    private List<String> smsNumbers;

   .
   .
   .
}
但这段代码不起作用,因为Bank.smsNumbers是List而不是String


那么我该如何解决这个问题呢?

在这种情况下,您可以使用本机查询而不是jpql 因此,您的存储库将是:

interface BankRepository extends RepositoryBase<Bank> {

   @Query(value = "select * from banks b where b.sms_numbers like 
   concat('%',:sNumber,'%') "  , nativeQuery = true)
   List<Bank> findReservedSmsNumbers(String sNumber);
.
.
.
}
接口库扩展了RepositoryBase{
@查询(value=“select*来自银行b,其中银行b.sms\U编号如下
concat(“%”,:sNumber,“%”),nativeQuery=true)
列出findreservedsmsnumber(字符串sNumber);
.
.
.
}

在这种情况下,您可以使用本机查询而不是jpql 因此,您的存储库将是:

interface BankRepository extends RepositoryBase<Bank> {

   @Query(value = "select * from banks b where b.sms_numbers like 
   concat('%',:sNumber,'%') "  , nativeQuery = true)
   List<Bank> findReservedSmsNumbers(String sNumber);
.
.
.
}
接口库扩展了RepositoryBase{
@查询(value=“select*来自银行b,其中银行b.sms\U编号如下
concat(“%”,:sNumber,“%”),nativeQuery=true)
列出findreservedsmsnumber(字符串sNumber);
.
.
.
}