方法 |
说明 |
Restrictions.eq |
= |
Restrictions.allEq |
利用Map来进行多个等于的限制 |
Restrictions.gt |
> |
Restrictions.ge |
>= |
Restrictions.lt |
< |
Restrictions.le |
<= |
Restrictions.between |
BETWEEN |
Restrictions.like |
LIKE |
Restrictions.in |
in |
Restrictions.and |
and |
Restrictions.or |
or |
Restrictions.sqlRestriction |
用SQL限定查询 |
下面是一个例子:
@SuppressWarnings("unchecked") public List<SSub> Select(SSub sub) { Session session = null; Transaction ta = null; List<SSub> list = new ArrayList<SSub>(); try { session = HibernateSessionFactory.getSession(); ta = session.beginTransaction(); Criteria criteria = session.createCriteria(SSub.class); if (sub.getArriveTime() != null || !sub.getArriveTime().equals("")) { criteria.add(Restrictions.eq("arriveTime", sub.getArriveTime())); } else if (sub.getCreateTime() != null || !sub.getCreateTime().equals("")) { criteria.add(Restrictions.eq("createTime", sub.getCreateTime())); } else if (sub.getDriver() != null || !sub.getDriver().equals("")) { criteria.add(Restrictions.eq("driver", sub.getDriver())); } else if (sub.getId() != null || !sub.getId().equals("")) { criteria.add(Restrictions.eq("id", sub.getId())); } else if (sub.getKeeperId() != null || !sub.getKeeperId().equals("")) { criteria.add(Restrictions.eq("keeperId", sub.getKeeperId())); } else if (sub.getLicense() != null || !sub.getLicense().equals("")) { criteria.add(Restrictions.eq("license", sub.getLicense())); } else if (sub.getOrderId() != null || !sub.getOrderId().equals("")) { criteria.add(Restrictions.eq("orderId", sub.getOrderId())); } else if (sub.getSubContent() != null || !sub.getSubContent().equals("")) { criteria.add(Restrictions.eq("subContent", sub.getSubContent())); } else if (sub.getSubNumber() != null || !sub.getSubNumber().equals("")) { criteria.add(Restrictions.eq("subNumber", sub.getSubNumber())); } else if (sub.getTel() != null || !sub.getTel().equals("")) { criteria.add(Restrictions.eq("tel", sub.getTel())); } ta.commit(); list = criteria.list(); } catch (Exception e) { // TODO: handle exception if (ta != null) { ta.rollback(); } e.printStackTrace(); } finally { if (session != null) { session.close(); } } return list; }
Hibernate映射类型 | java类型 | 标准SQL类型 |
integer | java.lang.Integer | integer |
long | java.lang.Long | bigint |
short | java.lang.Short | smallint |
float | java.lang.Float | float |
double | java.lang.Float | double |
big_decimal | java.math.BigDecimal | numeric |
character | java.lang.String | char(1) |
string | java.lang.String | varchar |
byte | byte或java.lang.Byte | tinyint |
boolean | boolean或java.lang.Boolean | bit |
yes_no | boolean或java.lang.Boolean | char(1)('Y'/'N') |
true_false | boolean或java.lang.Boolean | char(1)('Y'/'N') |
date | java.util.Date或java.sql.Date | date |
time | java.util.Date或java.sql.Time | time |
timestamp | java.util.Date或java.sql.timestamp | timestamp |
calendar | java.util.Calendar | timestamp |
calendar_date | java.util.Calendar | date |
binary | byte[] | varbinary或blob |
text | java.lang.String | clob |
serializable | java.io.Serializable实例 | varbinary或blob |
clob | java.sql.Clob | clob |
blob | java.sql.Blob | varbinary或blob |
class | java.lang.Class | varchar |
locale | java.util.Locale | varchar |
timezone | java.util.TimeZone | varchar |
currency | java.util.Currency | varchar |