spring jpa查询问题

我是全栈架构师 2017-12-01 04:09:42
@Test
public void test(){
System.out.println("Start testing");

Specification<TOrder> specification = new Specification<TOrder>() {
@Override
public Predicate toPredicate(Root<TOrder> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
List<Predicate> predicateList = new ArrayList<>();

Predicate orderNo = cb.equal(root.get("orderNo").as(String.class), "1001");
Predicate payStatusLike = cb.like(root.get("payStatus"), "已支付");
Predicate orderNoIsNotEmpty = cb.isNotEmpty(root.get("orderNo"));

Predicate[] pre = new Predicate[predicateList.size()];
//predicateList.add(orderNo);
//predicateList.add(payStatusLike);
predicateList.add(orderNoIsNotEmpty);

//query.where(predicateList.toArray(pre));

//return query.getRestriction();
return cb.and(predicateList.toArray(pre));
}
};
List<TOrder> orders = tOrderDao2.findAll(specification);
System.out.println(JSONValue.toJSONString(orders));
}

运行报一下错误:
org.springframework.dao.InvalidDataAccessApiUsageException: unknown collection expression type [org.hibernate.jpa.criteria.path.SingularAttributePath]; nested exception is java.lang.IllegalArgumentException: unknown collection expression type [org.hibernate.jpa.criteria.path.SingularAttributePath]
搞了半天也没出来
cb.isNotEmpty(root.get("orderNo"));
这个参数该怎么传 ?
...全文
330 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zk_Kang 2017-12-04
  • 打赏
  • 举报
回复
jpa,用于对象持久化,没研究过。。
Edward_S_Y 2017-12-01
  • 打赏
  • 举报
回复
引用 1 楼 SongYou05 的回复:
把mybatis的xml文件贴出来,估计是你xml文件里的collection写的不对,你可以先检查一下
你这个是jpa搞的啊,sorry,刚才没看清,jpa还真玩过。。。。
Edward_S_Y 2017-12-01
  • 打赏
  • 举报
回复
把mybatis的xml文件贴出来,估计是你xml文件里的collection写的不对,你可以先检查一下

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧