知道美河 | 上传资料 | VIP申请 | 精品课程 | 资料搜索 | 问题反馈 | 会员手册 | 积分消费 | 积分充值 | 帐号保护
美河学习学习在线赞助VIP

美河学习在线(主站) eimhe.com

 找回密码
 建立账号
查看: 7445|回复: 4

[求助] 紧急求助我想写一个方法功能是:根据一个表的ID查出它所对应的另外一个表的所有信息

[复制链接]
发表于 2007-1-26 15:20:18 | 显示全部楼层 |阅读模式
我想写一个方法功能是:根据一个表的ID查出它所对应的另外一个表的所有信息.表的关系多对多.

struts,hibernate实现:
User 实体类 ,Love  实体类,UserLoveTable 既是实体类又是中间表.
我想通过User的id查出所有对应的Love对象.
希望那位高手指点指点.
发表于 2007-1-26 17:37:43 | 显示全部楼层
public list findById( java.lang.Integer id) {
        log.debug("getting User instance with id: " + id);
        try {
          Transaction tx = getSession().beginTransaction();
            User user = (User) getSession()
                    .get("com.adam.beans.User", id);
           tx.commit();
           List list = user.getLoves();
            
              return list;
        } catch (RuntimeException re) {
            log.error("get failed", re);
            throw re;
        }
    }
 楼主| 发表于 2007-1-26 18:22:05 | 显示全部楼层
原帖由 adamed 于 2007-1-26 17:37 发表
public list findById( java.lang.Integer id) {
        log.debug("getting User instance with id: " + id);
        try {
          Transaction tx = getSession().beginTransaction();
   ...

谢谢adamed不过你可能把意思理解错了.
我在做一个多对多的程序
用户(user)和兴趣(love)中间表(userlove)
create database userlove;

use userlove;

create table user(
id int primary key auto_increment,
username varchar(40),
password varchar(40),
sex varchar(5),
address varchar(100)
);

create table love(
id int primary key auto_increment,
lovename varchar(50)
);

create table user_love_table(
id int primary key auto_increment,
userid int,
loveid int);

alter table user_love_table add constraint fk_userid foreign key (userid) references user(id);

alter table user_love_table add constraint fk_loveid foreign key (loveid) references love(id);


我是想通过user的id查出它所对应的所有的兴趣
只给出user的id如何通过hibernate得到它所对应的love对象呢?对象有可能一个也有可能多个.
发表于 2007-1-26 21:12:46 | 显示全部楼层
可以用SQLQuery接口.
        /*public static void main(String[] args)
        {
                //int id=3;
               
            try
            {
                    String key="华亭";
                    String sql = " select * FROM Hotel h inner join RoomInfo r on h.Hotel_Uid =r.Hotel_Uid inner join OrderForm o on r.RoomInfo_Uid = o.RoomInfo_Uid where h.Name like '%"+key+"%'";
                   
                    SQLQuery query = session.createSQLQuery(sql);
                    query.addEntity("h",Hotel.class);
                query.addEntity("r",RoomInfo.class);
                    query.addEntity("o",OrderForm.class);
                   
                List list = query.list();
                for(int i =0;i<list.size();i++)
                {
                    Object obj[] = (Object[])list.get(i);
                    Hotel h =(Hotel)obj[0];
                    RoomInfo ri =(RoomInfo)obj[1];
                    OrderForm f =(OrderForm)obj[2];
                   
                    System.out.println(h.getName()+" "+f.getOrderFormUid()+" "+f.getOrderStatus()+" ");
                }
                     tx.commit();
                 
                       
                                }
    catch (Exception ex) {   
            ex.printStackTrace();
      //  tx.rollback();//数据回滚
    }

        }*/
}
仅供参考..
发表于 2007-1-26 23:19:36 | 显示全部楼层
就像我那么写,没错的。。。
你可以先看看wolfuni的hibernate2的视频。。有我的一个点评你也可以看一下。。

祝:学习进步
您需要登录后才可以回帖 登录 | 建立账号

本版积分规则

 
QQ在线咨询

QQ|小黑屋|手机版|Archiver|美河学习在线 ( 浙网备33020302000026号 )

GMT+8, 2025-5-7 16:40

Powered by Discuz!

© 2001-2025 eimhe.com.

快速回复 返回顶部 返回列表