首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

关于hibernate关联映射查询的有关问题

2012-08-08 
关于hibernate关联映射查询的问题我有个商品表和商品属性表 是一对多的关系 但是关联映射查询的时候却只能

关于hibernate关联映射查询的问题
我有个商品表和商品属性表 是一对多的关系 但是关联映射查询的时候却只能查出一个商品的属性 不明白哪里错了 纠结 就大神解答

我的配置文件

XML code
    <class name="ccsu.bango.goods.model.Goods" table="TB_GOODS">        <id name="goodsId" type="java.lang.Integer">            <column name="ID"></column>        </id>        <property name="classId">            <column name="CLASS_ID"></column>        </property>        <property name="status">            <column name="STATUS"></column>        </property>        <bag name="goodsPropList" inverse="true">            <key column="ID"></key>            <one-to-many class="ccsu.bango.goods.model.GoodsProp"/>        </bag>    </class>        <class name="ccsu.bango.goods.model.GoodsProp" table="TB_GOODSPROPS">        <id name="goodsPropId">            <column name="ID"></column>        </id>        <property name="propNameId">            <column name="PROP_ID"></column>        </property>        <property name="propValueId">            <column name="VALUE_ID"></column>        </property>        <property name="goodsId">            <column name="GOODS_ID"></column>        </property>    </class>

两个类
Java code
package ccsu.bango.goods.model;public class GoodsProp {        private Integer goodsPropId;    private Integer propNameId;    private Integer propValueId;    private Integer goodsId;        public GoodsProp() {        // TODO Auto-generated constructor stub    }        public GoodsProp(Integer goodsPropId, Integer propNameId,            Integer propValueId, Integer goodsId) {        this.goodsPropId = goodsPropId;        this.propNameId = propNameId;        this.propValueId = propValueId;        this.goodsId = goodsId;    }    public Integer getGoodsPropId() {        return goodsPropId;    }    public void setGoodsPropId(Integer goodsPropId) {        this.goodsPropId = goodsPropId;    }    public Integer getPropNameId() {        return propNameId;    }    public void setPropNameId(Integer propNameId) {        this.propNameId = propNameId;    }    public Integer getPropValueId() {        return propValueId;    }    public void setPropValueId(Integer propValueId) {        this.propValueId = propValueId;    }    public Integer getGoodsId() {        return goodsId;    }    public void setGoodsId(Integer goodsId) {        this.goodsId = goodsId;    }    }

Java code
package ccsu.bango.goods.model;import java.util.List;public class Goods {    private Integer goodsId;    private Integer classId;    private Integer status;        private List goodsPropList;    public Goods() {        // TODO Auto-generated constructor stub    }        public Goods(Integer goodsId, Integer classId, Integer status,            List goodsPropList) {        this.goodsId = goodsId;        this.classId = classId;        this.status = status;        this.goodsPropList = goodsPropList;    }    public Integer getGoodsId() {        return goodsId;    }    public void setGoodsId(Integer goodsId) {        this.goodsId = goodsId;    }    public Integer getClassId() {        return classId;    }    public void setClassId(Integer classId) {        this.classId = classId;    }    public Integer getStatus() {        return status;    }    public void setStatus(Integer status) {        this.status = status;    }    public List getGoodsPropList() {        return goodsPropList;    }    public void setGoodsPropList(List goodsPropList) {        this.goodsPropList = goodsPropList;    }    } 


Java code
        Goods gs = (Goods) session.load(Goods.class, new Integer(1));        GoodsProp goodsProp = (GoodsProp) gs.getGoodsPropList().get(0);        System.out.println(goodsProp.getPropNameId());

hibernate查询GoodsProp表的时候不是根据外键good_id来找的 应该是这里的错误 但是还是不懂哪里配置错了
Hibernate: 
  select
  goods0_.ID as ID0_0_,
  goods0_.CLASS_ID as CLASS2_0_0_,
  goods0_.STATUS as STATUS0_0_ 
  from
  TB_GOODS goods0_ 
  where
  goods0_.ID=?
Hibernate: 
  select
  goodspropl0_.ID as ID1_,
  goodspropl0_.ID as ID1_0_,
  goodspropl0_.PROP_ID as PROP2_1_0_,
  goodspropl0_.VALUE_ID as VALUE3_1_0_,
  goodspropl0_.GOODS_ID as GOODS4_1_0_ 
  from
  TB_GOODSPROPS goodspropl0_ 
  where
  goodspropl0_.ID=?

[解决办法]
one to one 加入 property-ref="外键"
 goodspro 加入 many to one name class 照设.另外加 column=外键

热点排行