Code Bye

hibernate多对一查询问题

我有两个表,一个房间预约表book{bookId  ,   room  , user,  IP,  Mac}表,一个room{roomId, roomName}表;
DAO层查询时用了
public List<book> getbook(String Ip,String Mac){
Object values[] = {Ip,Mac};
return this.getHibernateTemplate().find(“from  book b where b.Ip = ? and b.Mac = ?”,values);
}

action中获取到List<book>数据至books,books 中只存在有book表信息,以及 book.room.roomId信息 ;我想获取每一个预约book记录对应的roomName。DAO查询层应该怎样查询?

原来想在action中定义一个新类,包含{bookId  ,   room  ,user,   IP,  Mac,roomName},后来想hibernate 应该支持。
book.hbm.xml
 <many-to-one name=”room” lazy=”false” class=”com.meet.entity.room” fetch=”select”>
            <column name=”RoomID” not-null=”true” />
        </many-to-one>

room.hbm.xml
 <set name=”books” lazy=”false” inverse=”true”>
            <key>
                <column name=”RoomID” not-null=”true” />
            </key>
            <one-to-many class=”com.meet.entity.book” />
        </set>

查询出来的book对象.room.getRoomName();就好了啊
首先要配置映射文件里面的多对一或者一对多关系映射    如果配置对的话  是可以直接在book对象调用的      也就是说book对象包括了你想要的结果
经过检查是延迟加载的问题。

40分
引用 3 楼 qu106 的回复:

经过检查是延迟加载的问题。

、、、、、、、既然解决了 就结贴啊

解决问题了 我还是来混点分啊

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明hibernate多对一查询问题