即使有数据,JPQL 也不返回任何结果
Posted
技术标签:
【中文标题】即使有数据,JPQL 也不返回任何结果【英文标题】:JPQL returning no results eventhough there is data 【发布时间】:2017-10-14 04:18:58 【问题描述】:在我的带有 H2 DB 的 Spring JPA 中,尽管 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');
访问状态值(第3行)的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
请在下面的图片中找到显示状态值为“已完成”的调试图片
赞赏!!!
【问题讨论】:
你从不使用status
参数。
【参考方案1】:
您正在搜索“状态”而不是变量状态所持有的值。你的 setParameter 调用应该是
query.setParameter("someSymbol", "%" + status + "%");
【讨论】:
谢谢@Eelke,这就是问题所在。以上是关于即使有数据,JPQL 也不返回任何结果的主要内容,如果未能解决你的问题,请参考以下文章
即使查询返回结果,Twitter-typeahead 也不显示任何结果
Query.getResultList() 即使sql表有行也不返回结果