首页 / 软件开发 / JAVA / Hibernate HQL语法及相关的外键关联
Hibernate HQL语法及相关的外键关联2011-07-22例如对于TUser类1.实体查询String hql = " from TUser";执行这条语句会返回TUser以及TUser子类的纪录。注: 如果 TUser 类具有外键, 查询会报错!解决方法: select 别名。属性 from 类 as 别名。 没有别名。属性仍然报错!hql = "from java.lang.Object"会返回数据库中所有库表的纪录。where 语句hql = "from TUser as user where user.name="yyy"";其中,as可以省略也一样hql = "from TUser user where user.name="yyy"";where子句中,我们可以通过比较运算符设定条件,如:=, <>, >, <, >=, <=, between, not between, in, not in, is, like等。2.属性查询List list = session.createQuery("select user.name, user.age from TUser as user").list();还可以在HQL中动态构造对象实例的方法,将数据封装。List list = session.createQuery("select new TUser(user.name, user.age) from TUser as user").list();
Iterator it = list.iterator();
while(it.hasNext() ) {
TUser user = (TUser)it.next();
System.out.println(user.getName());
}但是要注意这里的TUser对象只是对name和age属性的封装,其他状态均未赋值,所以不能用它来进行更新操作。也可以在HQL的Select子句中使用统计函数"select count(*) ,min(user.age) from TUser as user"也可以使用distinct关键字来删除重复纪录。select distinct user.name from TUser as user;