Hibernate多条件查询以及与java+sql 之间数据类型转换关系

方法

说明

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类型
integerjava.lang.Integerinteger
longjava.lang.Longbigint
shortjava.lang.Shortsmallint
floatjava.lang.Floatfloat
doublejava.lang.Floatdouble
big_decimaljava.math.BigDecimalnumeric
characterjava.lang.Stringchar(1)
stringjava.lang.Stringvarchar
bytebyte或java.lang.Bytetinyint
booleanboolean或java.lang.Boolean  bit
yes_no    boolean或java.lang.Booleanchar(1)('Y'/'N')
true_falseboolean或java.lang.Booleanchar(1)('Y'/'N')
datejava.util.Date或java.sql.Datedate
timejava.util.Date或java.sql.Timetime
timestampjava.util.Date或java.sql.timestamptimestamp
calendarjava.util.Calendartimestamp
calendar_datejava.util.Calendardate
binarybyte[]varbinary或blob
textjava.lang.Stringclob
serializablejava.io.Serializable实例varbinary或blob
clobjava.sql.Clobclob
blobjava.sql.Blobvarbinary或blob
classjava.lang.Classvarchar
localejava.util.Localevarchar
timezonejava.util.TimeZonevarchar
currencyjava.util.Currencyvarchar

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值