日期:2014-05-18  浏览次数:20731 次

Hibernate怎么才能让主键不自增?
本帖最后由 chenxyz707 于 2013-04-27 01:43:15 编辑
这是我利用反向工具生成的User.hbm.xml
<hibernate-mapping>
    <class name="com.hebut.dao.User" table="ADDBOOK" schema="SCOTT">
        <id name="phonenum" type="java.lang.String">
            <column name="PHONENUM" length="50" />
            <generator class="sequence"></generator>
        </id>
        <property name="name" type="java.lang.String">
            <column name="NAME" length="10" />
        </property>
        <property name="address" type="java.lang.String">
            <column name="ADDRESS" length="50" />
        </property>
    </class>
</hibernate-mapping>

主键是phonenum,那么我将数据提交给数据库存储时为什么只有name和address能正确存储,而phonenum只是每次自增?我想要的是phonenum是可以自己输入的字符串,不想再给表设置一个专门的ID字段代替phonenum做主键,怎么解决。
Hibernate 自增

------解决方案--------------------
sequence换成assigned你就可以手动添加了,UUID即可生成你的随机字符串
------解决方案--------------------
引用:
sequence换成assigned你就可以手动添加了,UUID即可生成你的随机字符串

ls正解,<generator class="sequence"></generator>  这个是增长方式,你可以查阅hibernate资料,换成你想要的任何一种方式。比如assign 自己分配