2007-05-05
关于hibernate多表查询的问题
我现在有两个表 一个是 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());
}
}
}
}
}
但是,我们现在数据库的配置文件都没有采用延迟加载
能不能做一个新的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());
}
}
}
}
}
评论
xzliulin
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
这两种哪种写法要好呢
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
这两种哪种写法要好呢
- 浏览: 4191 次
- 来自: 北京

- 详细资料
搜索本博客
最近加入圈子
最新评论
-
Heritrix多线程的问题
我也遇到相同的问题 ,不知道lz有没有解决 ?
-- by D04540214 -
关于cas的java客户端
今天又仔细的看了一下CASFilter的源代码和login-webflow.xm ...
-- by zzxplayful -
关于cas的java客户端
里面的源代码我已经看过很多遍了,还是解决不了我的问题。我要判断的是 :比如:C用 ...
-- by zzxplayful -
关于cas的java客户端
你用的应该是yale的cas吧?如果是,建议去下载一个客户端的源代码(或者反编译 ...
-- by liangguanhui -
je分词的问题
1.5.3应该已经改了
-- by amw_demon






评论排行榜