我知道你可以通过映射自动增加id;
<id column="user_id" name="id" >
<generator class="increment"/>
</id>
但它是否也有可能增加一个属性,到目前为止我尝试过的东西不起作用;
<property column="numeric_value" name="nr" >
<generator class="increment"/>
</property>
答案 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