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类型
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

猜你喜欢

转载自blog.csdn.net/qq_24531461/article/details/68064015