主题 : hibernate的hql问题
级别: 举人
UID: 768
积分:90 加为好友
威望: 0 精华: 0
主题:15 回复:8
注册时间:2009-09-11
在线时长:0
1#   发表于:2009-09-14 11:02:07  IP:58.221.*.*
select func from Function func where func.id in"
    + " (select f1.id from Admin admin join admin.roles role join role.functions f1 where admin.id = ?) or func.id in "
    + " (select f2.id from Admin admin join admin.functions f2 where admin.id = ?)"
    + " order by func.priority asc
    这句sql怎么理解?
    第一:为什么会select func而不是select funcs呢。Function.hbm.xml中不是 
  <property
   name="funcs"
   column="FUNCS"
   type="string"
   not-null="false"
   />
  <property
  这样配置的吗?
  第二:怎么这句sql和一般的sql不一样它里面的join admin.roles role join role.functions f1 是什么意思(这是不是hibernate特有的sql呢)。如果转换成一般的sql应该是怎么样的。
级别: 解元
UID: 36
积分:204 加为好友
威望: 0 精华: 0
主题:8 回复:131
注册时间:2009-06-03
在线时长:0
2#   发表于:2010-03-11 22:07:10  IP:59.114.*.*
<property 
   name="funcs" 
   column="FUNCS" 
   type="string" 
   not-null="false" 
   /> 
funcs是指JAVA类的名字。。。而func是在HQL查询中,临时取的别名。2个是完全不一样的概念。。。比如你在HQL里也可以把func改成aaa。。。也是一样的效果。。。
2.join admin.roles role join role.functions 这个就是用来多表关联的。。在sql语句里。也是用join关键字关联。。。只不过一个关联的是对象的属性。一个是表的字段
天空呢,其实是没有颜色的.他并没有欺骗你什么.只是你的眼睛欺骗了你自己
1 共1页