【发布时间】:2021-12-05 08:26:49
【问题描述】:
@Query(value = "select usd from UserDetail usd where usd.phoneNumber=:phoneNumber")
Optional<UserDetail> findByPhoneNumber(@Valid @Param("phoneNumber") String phoneNumber);
这是我的 JPQL 查询方法,我在这里使用带有 Optional 的返回类型。请问CriteriaBuilder怎么写?
我是这样写的,但我遇到了一个错误。
@Override
public Optional<UserDetail> findByCreatedDate(String phoneNumber) {
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<UserDetail> cq = cb.createQuery(UserDetail.class);
Root<UserDetail> root = cq.from(UserDetail.class);
cq.where(cb.equal(root.get("phoneNumber"), phoneNumber))
.orderBy(cb.desc(root.get("phoneNumber")));
return em.createQuery(cq).getResultList().get(3);
}
【问题讨论】:
标签: java spring-boot jpa repository optional