hibernate常用的hql语句
在说hql语句之前,先来简单地说一下在hibernate里面悲观锁和乐观锁吧
悲观锁得有数据库的支持,Oracle数据库用的是悲观锁而乐观锁是用程序来实现的,他与数据库无关,那么如何实现乐观锁那,简单写一下
1。在实体配置文件上的<class>标签上陪optimistic-lock="version"
2。在实体类内定义变量version,并给他附上get和set方法
3。在<class>标签里配置<version name="version">
?
用锁的机制主要就是解决并发操作
?
下面说一下常用到的查询语句
1。简单属性查询
例如:select u.name from user u??? 返回属性类型
select u.name,u.age from user u?? 返回数据
2。实体对象查询
例如
from user
= select u from user as u;
3.条件查询
from user u where u.name=?;
4.对象导航查询
from user u where u.id=? and u.deparment.createtime=?;
其中department是部门对象
5。参数命名化
from user u where u.id=:uid and u.department.createtime=:ctime;
6.集合查询
from user u where u.id? in(?,?,?);
或者
from user u where u.id in (:uids);
q.setParameterlist("uids",数组);
在或者
from user u where uid between :begin_id and end_id;
q.setparameter("beginid",1);
q.setparameter("endid",10);
7.模糊查询
from user u where u.username like :name;
q.setparameter("name","小%");
8.原生SQL
query? sqlquery = session.createSQLQuery("select * from user?");
List list = sqlQuery.list();
10.过滤器查询
?