代码之家  ›  专栏  ›  技术社区  ›  Jithesh Gopinathan

即使有数据,JPQL也不会返回结果

  •  0
  • Jithesh Gopinathan  · 技术社区  · 8 年前

    在我的spring JPA中,H2 DB当前没有返回值,尽管DB中有值。

    我的数据库具有以下值:

    INSERT INTO public.ToDo values (1, 'Java', 'completed');
    INSERT INTO public.ToDo values (2, '.NET', 'pending');
    INSERT INTO public.ToDo values (3, 'Word', 'completed');
    INSERT INTO public.ToDo values (4, 'PPT', 'pending');
    

    访问状态为(第三行)的值的DAO方法如下:

        public List<ToDo> getItemsWithStatus(String status) {
        TypedQuery<ToDo> query = em.createQuery(
                "SELECT u FROM ToDo u WHERE u.status LIKE :someSymbol ORDER BY 
        u.id", ToDo.class);
        query.setParameter("someSymbol", "%status%");
        return query.getResultList();
    }
    

    ToDo实体代码如下:

    @Entity
    @Table
    public class ToDo{
    @Id
    private int id;
    @Column
    private String name;
    @Column
    private String status;
    
    //getters and setters
    

    }

    请查找下图以显示调试图像,该图像的状态值为“已完成” Debug

    非常感谢!!!

    1 回复  |  直到 8 年前
        1
  •  1
  •   Eelke    8 年前

    您搜索的是“status”,而不是变量status所持有的值。您的setParameter调用应该是

    query.setParameter("someSymbol", "%" + status + "%");