【发布时间】:2017-01-18 03:54:42
【问题描述】:
我是休眠查询的新手。我有一个关于休眠范围搜索的问题。我想要的是从 2 个不同的列中搜索一个范围 下面是我的插画
在数据库中:
Start_No | End_No
3000 | 4000
我的休眠查询是这样的
session = getSession();
session.buildLockRequest(new LockOptions(LockMode.NONE));
Criteria crit = session.createCriteria(CardRange.class);
if(!IMXUtil.isEmpty(s_startNo) && !IMXUtil.isEmpty(s_endNo)){
crit.add(Restrictions.ge("startNo", Long.parseLong(s_endNo)));
crit.add(Restrictions.ge("startNo", Long.parseLong(s_startNo)));
}
ProjectionList projList = Projections.projectionList();
projList.add(Projections.property("cardRangeId"));
projList.add(Projections.property("startNo"));
projList.add(Projections.property("endNo"));
projList.add(Projections.property("issuerId"));
projList.add(Projections.property("status"));
projList.add(Projections.property("createdDate"));
projList.add(Projections.property("lastModifiedDate"));
crit.setProjection(projList);
crit.setFirstResult(iDisplayStart);
crit.setMaxResults(iDisplayLength);
return crit.list();
输出是这样的
如果我把 3500 到 3600 = 它仍然在数据库中 3000 到 4000 的范围内 并显示输出。我如何能够创建一个休眠条件来满足这个搜索?
【问题讨论】:
-
如果您要查找 start_no 和 end_no 之间的值范围,则可以使用简单的 where 条件。其中 start_no = :parma2
-
现在你正在做类似
where start_no > :endNoParam and start_no > :startNoParam的事情,这显然不是你所描述的。
标签: java hibernate jakarta-ee