数据库MySql
在商品表products中
pro_id是自增列
然后关联到产品类别表(protypes)中的主键type_id现在的需求是这样的
我的pro_id必须要和type_id做联合主键实例是:我有了一个商品分类譬如书籍类,type_id是1
现在我需要添加N种书进去,我不想每本书都给一个pro_id,而是需要让它自增,剩下的我只需要把type_id的1放进去就可以。现在在MySql里可以直接插入数据,type_id我给定,其他信息我给定,就是pro_id不给,它可以自己自增。然后用到j2ee里,用hibernate生成的hbm里,我怎么能实现pro_id的自增?请不要让我把type_id单独做成外键,我会那么做,但是现在的需求是必须要让type_id和pro_id做联合主键。请高手指点!hbm相关信息如下:
<hibernate-mapping>
    <class name="com.jurr.voo.Products" table="products">
        <composite-id name="id" class="com.jurr.voo.ProductsId">
            <key-property name="proId" type="java.lang.Integer">
                <column name="pro_id" />
            </key-property>
            <key-many-to-one name="protypes" class="com.jurr.voo.Protypes">
                <column name="type_id" />
            </key-many-to-one>
        </composite-id>……以下不相关部分省略

解决方案 »

  1.   

    联合主键,你得写一个主键类才行。<composite-id name= "c.id" class= "c" unsaved-value= "none ">
      <key-many-to-one   name= "a"   class= "a"   column= "a.id "/>
      <key-many-to-one   name= "b"   class= "b"   column= "b.id "/>
    </composite-id> 另外,你为何不考虑给id 做逐渐,然后2个一起做唯一键呢?
      

  2.   

    我现在有主键类,东西都是全的,就是不知道如何在hbm里做到java控制pro_id时的pro_id自增。另外你说的2个一起做唯一可能我这里用不到因为这两个表还关联到很多其他东西,把他们做成联合主键是有用意的
      

  3.   

    主键类相关信息在此:public class ProductsId  implements java.io.Serializable {
        // Fields         private Integer proId; //商品编号
         private Protypes protypes; //主类别,包含重要信息protypes.typeId(主类别编号)