zoukankan      html  css  js  c++  java
  • Java Spring中@Query中使用JPQL LIKE 写法

    两种方式

    // 一
    public List<TestEntity> searchByJpql(){
        String jpql = "select k from TestEntity k where k.id = ?1 and k.no = ?2 and k.name like '%'||?3||'%' order by k.id asc";
        Object[] params = new Object[3];
        params[0]=Long.valueOf(id);
        params[1]=3L;
        params[2]="jobo";
        List<TestEntity> testEntity=testEntityDao.findByJpql(TestEntity.class, jpql, params);
    }
    // 二
    @Query("select k from TestEntity k where k.id = ?1 and k.no = ?2 and k.name like '%'||?3||'%'")
    public TestEntity searchOne(Long id, Long no, String name);

    常见异常如下:

    1.Cannot mix JPA positional parameters and native Hibernate positional/ordinal parameters;

    原因:?1,?2 ,?3有错误;

    2.Parameter with that position [2] did not exist;

    原因:params中的参数和?1,?2 ,?3 不对应;

    3.Parameter value [3] did not match expected type [java.lang.Long (n/a)];

    原因:params中的参数和TestEntity中定义的变量类型不配陪,[3] 是指数组中的value值,而不是Object[3];

  • 相关阅读:
    VS自带的诊断工具
    Electron学习
    PC跨*台
    .NET调试学习
    Mac使用
    SSL/TLS
    UKey学习
    授权机制OAuth、JWT
    代理服务器
    .NET相关源码查找
  • 原文地址:https://www.cnblogs.com/pangpanghuan/p/6529580.html
Copyright © 2011-2022 走看看