1.实体查询:
String hql=”from User ”;
List list=session.CreateQuery(hql).list();
存在继承判定,会将User对象的子类对象也检索出来。
其他语法:
from User user where user.age=20;
from User user where user.age between 20 and 30;
from User user where user.age in(20,30);
from User user where user.name like ‘%zx%’;
from User user where (user.age%2)=1;
from User user where user.age=20 and user.name like ‘%zx%’;
1) 内连接 【映射已经配置好了关系,关联的时候,直接写对象的属性即可】
Query q = session.createQuery("from Dept d inner join d.emps");
2) 左外连接
Query q = session.createQuery("from Dept d left join d.emps");
3) 右外连接
Query q = session.createQuery("from Employee e right join e.dept");
2.实体更新和删除
Transaction trans=session.beginTransaction();
String
hql=”delete from User user where user.age=18”;
//删除
String hql=”update User user set user.age=20 where user.age=18”;//插入
Query queryupdate=session.createQuery(hql);
int ret=queryupdate.executeUpdate();
trans.commit();
3.属性查询
在只想要查询对象的部分属性时使用
List
list=session.createQuery(“select new User(user.name,user.age) from User user ”).list();
for(int i=0;i<list.size();i++){
User user=(User)list.get(i);
System.out.println(user.getName());
System.out.println(user.getAge());
}
但要注意返回的对象不是原来的对象,不要修改后进行saveOrUpdate()等操作。
4.分组/排序
from User user order by user.name asc,user.age desc; //排序
select count(user),user.age from User user group by user.age having count(user)>10 //分组
5.参数绑定
不进行记录,参考原文链接。
原文链接:http://blog.youkuaiyun.com/lidiansheng/article/details/8459204