Hibernate自动增量属性

时间:2010-10-29 10:27:54

标签: java hibernate hibernate-mapping

我知道你可以通过映射自动增加id;

<id column="user_id" name="id" >
<generator class="increment"/>
</id>

但它是否也有可能增加一个属性,到目前为止我尝试过的东西不起作用;

<property column="numeric_value" name="nr" >
<generator class="increment"/>
</property>

2 个答案:

答案 0 :(得分:8)

  

但它是否也有可能增加一个属性,到目前为止我尝试过的东西不起作用;

不,你不能在<generator>内使用<property>(或者,用简单的英文写,Hibernate只支持使用生成器作为标识符属性)。

如果您可以依赖数据库来生成值(例如使用触发器),可以查看generated properties

参考

答案 1 :(得分:0)

这取决于数据库以及您如何创建表。例如,如果您使用的是Mysql,那么在表id字段中应该为该字段设置自动增量。 Hibernate不会生成它,而是依靠数据库来完成它。如果使用Hibernate工具生成表,则需要适当地生成表。您可以参考http://docs.jboss.org/hibernate/core/3.3/reference/en/html/mapping.html#mapping-declaration-id