【发布时间】:2012-12-31 17:55:15
【问题描述】:
我使用的条件查询如下:我想在我过去的时间和日期之后获取预订。但现在我在同一日期过去的时间之前获得预订。请帮助..
@GET
@Path("/getReservationByUserIdAndTypeAndDateTime/{userid}/{type}/{date}/{time}")
public List<Reservation> getReservationByAndUserIdAndTypeAndDateTime(@PathParam("userid") int uid, @PathParam("type") int tid,@PathParam("date") Date date,@PathParam("time") Time time) {
CriteriaBuilder builder = em.getCriteriaBuilder();
CriteriaQuery<Reservation> criteria = builder.createQuery(Reservation.class);
Root<Reservation> r = criteria.from(Reservation.class);
TypedQuery<Reservation> query = em.createQuery(
criteria.select(r).where(new Predicate[]{
builder.equal(r.get(Reservation_.usersId), uid),
builder.equal(r.get(Reservation_.reservationsType), tid),
builder.greaterThanOrEqualTo(builder.concat(r.get(Reservation_.date), " "+r.get(Reservation_.time)), date.toString()+" "+time.toString())}));
return query.getResultList();
}
【问题讨论】:
-
您能否显示
Reservation类的date和time字段的映射? -
我只是简单地添加了这两个字段..日期和时间作为字符串并创建了getter和setter..
-
@Column(nullable=false, length=10) 私有字符串日期;
标签: java sql hibernate jpa hibernate-criteria