关于hibernate多表查询的有关问题
关于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());
}
}
}
}
}
我现在有两个表 一个是 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());
}
}
}
}
}
1 楼
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
这两种哪种写法要好呢