【问题标题】:LIKE % is not recognized in createQuery("") but is working in @Query("")LIKE % 在 createQuery("") 中无法识别,但在 @Query("") 中工作
【发布时间】:2021-08-10 00:23:49
【问题描述】:

当我尝试做的时候, 这有效并返回给我一个列表

@Repository{   
public interface CustomerRepository extends JPARepository<CustomerEntity,Long>{
    @Query("select c from Customer c where c.custName LIKE %:custName% ORDER BY AGE DESC"
    List<CustomerEntity> fetchAllCustomer(String custname);
}

但是当我尝试这样做时: result1 --> 返回一个列表, 结果 2 --> 错误 : java.lang.illegealArguments: org.hibernate.gql.internal.QuerySyntaxException: 意外令牌 : % near line 1 , column 112

public class CustomerResolver implements GraphQlQueryResolver{
  @PersistaneUnit
  private EntityManagerFactory emf;

  public List<CustomerType> findCustomer(String search){
  EntityManager em = emf.createEntityManager();

  List<CustomerType> result1 = (List<CustomerType>)em.createQuery("select c from Customer c ORDER BY AGE 
  DESC").setMAXResults(3).getResultList();
  System.out.println(result1);

  List<CustomerType> result2 = (List<CustomerType>)em.createQuery("select c from Customer c where  
  c.custName LIKE %:custName% ORDER BY AGE 
  DESC").setParameter("custName",search).setMAXResults(3).getResultList();
  System.out.println(result2);

  ...code
  ...code
  ...return ...
  

  
}
}

是否 createQuery 不占用 LIKE 的 % ,但确实适用于 @Query??????? 还是我错过了什么???

亲切的问候, 卡西斯

【问题讨论】:

    标签: oracle spring-boot jpa graphql


    【解决方案1】:

    这是我的例子,请检查

    @Query("SELECT u.username FROM User u WHERE u.username LIKE CONCAT('%',:username,'%') ORDER BY AGE DESC")
    List<String> findUsersWithPartOfName(@Param("username") String username);
    

    【讨论】:

    • List result2 = (List)em.createQuery("select c from Customer c where c.custName LIKE CONCAT('%',:custName,'%') ORDER BY AGE DESC").setParameter("custName",search).setMAXResults(3).getResultList(); CONCAT 做到了@Zaur。谢谢老哥!!!
    猜你喜欢
    • 2019-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多