论坛首页 入门技术论坛

关于hibernate多表查询的问题

浏览 2660 次
该帖已经被评为新手帖
作者 正文
   发表时间:2007-05-05  
我现在有两个表 一个是 userInfo(用户信息表),一个是wapUserContentTb(用户图片对应表)
但是,我们现在数据库的配置文件都没有采用延迟加载

能不能做一个新的po来吧userInfo和wapUserContentTb的数据库字段设成一个新的po来去数据呢?
下面是我的代码

package com.datacomo.mobi5.app.tf.test;

import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;

import com.datacomo.hibernate.HibernateSessionFactory;
import com.datacomo.hibernate.po.UserInfo;
import com.datacomo.hibernate.po.WapUserContentTb;


public class MutiTableTest{


public static void main(String args[]) {

Session session = HibernateSessionFactory.getSession();

Transaction tx = session.beginTransaction();

String hql = "from UserInfo u ,WapUserContentTb w where w.userId=u.userId and w.id=:Id";

Query query = session.createQuery( hql );

query.setString( "Id", "28E0A972908C6CCBE040A8C05201149D" );

List list = query.list();

tx.commit();

session.close();

      
System.out.println(list.get( 0 ));

for(int i =0 ;i<list.size();i++) {

Object [] o = (Object[])list.get( i );

for(int j = 0; j<o.length;j++) {
if(o[j] instanceof WapUserContentTb) {

WapUserContentTb wap =(WapUserContentTb)o[j];

System.out.println(wap.getChangeFileName());
}

else if(o[j] instanceof UserInfo) {

UserInfo userInfo =(UserInfo)o[j];

System.out.println(userInfo.getRealName());
}

}

}
}

}
   发表时间:2007-07-07  
A表和B表
A.sid 和b.sid统一
select * from a where a.sid in(select sid from b)

还是select * from a as a,b as b where a.sid=b.sid
这两种哪种写法要好呢
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics