案例:User与Order是一对多关系 
User单项关联Order 
User类中有private Map <String,Order> orders=new HashMap <String,Order>();属性 
问题:如何在User.hbm.xml中正确配置 
<map name="orders" table="m_order" cascade="delete,save-update"> 
    <key column="OUID"/> 
      ?????? 
</map>
问号部分的代码应怎么写呢
含有集合属性类对应的(比如List,Array)映射hbm.xml文件如何正确配置(集合元素是对象类型(例:Student,User等)),
也求高手赐教! 
这问题我百度过了,但是上面提供的都不是实体类,都是基础数据类型对应的封装类 

解决方案 »

  1.   

    另外 集合对象要用collection 不要用map!
      

  2.   

    不用写语句,你加上一对多的映射属性就可以了,具体可以查看hibernate试题映射
      

  3.   

    我觉得搞技术不光要知其然
    还要知其所以然
    不能太过依赖IDE
      

  4.   

    class USER {
       private String uid;
       private Set orders=new HashSet();
       ......
    }
    class ORDER {
       private String oid;
       private User user;
       .........
    }<map name="orders" class="ORDER" table="order">
        <many-to-one name="user"
                     column="USER_ID" ----充当外键关联
                     class="USER"
         >
    </map> 
    <map name="users" class="USER" table="user">
         <set name="order">
           <key column="USER_ID" /> ----充当外键关联
           <one-to-many class="ORDER">
         </set>     
    </map>
      

  5.   

    这个问题的答案应该不止一个,好像有个用<many-to-one>的写法
    目前我找到一个
    <map name="orders" table="m_order" inverse="true" cascade="delete,save-update">
       <key column="OUID"/>
        <map-key type="string" column="ORID"/>
         <composite-element class="Order">
           <property name="cost"/>
        </composite-element> 
    </map>  
    我还想要用<many-to-one>的写法
      

  6.   

    单向关联只需在User.hbm.xml配置即可
    即8楼的代码
      

  7.   

    Set的集合映射我会
    7楼的代码是用IDE反向出来的?!