在Hibernate中创建一个自动递增的数据库字段

时间:2015-01-07 19:47:50

标签: java mysql hibernate jpa auto-increment

我有一个Game课程,每个游戏都有很多Round个实例(一对多)。这两个类都有一个自动递增的id字段作为主键。

我希望Round有另一个名为ordinal的字段,每当我创建与单个Round关联的新Game对象时,ordinal该字段将自动填充该特定游戏的下一个序号

示例:

  • 游戏对象:Game(id=71)
  • 该游戏的第一轮对象:Round(id=389, game_id=71, ordinal=0)
  • 现在为游戏创建一个新的Round对象,它将是第二个,由ordinal字段的值表示:Round(id=514, game_id=71, ordinal=1)

Round在定义中有以下行(尽管我不是100%认为这是正确的方法):

`@Table(uniqueConstraints = @UniqueConstraint(columnNames = {"ordinal", "game_id"}))`

我可以查询该特定游戏的所有Round个对象,查看最后一个ordinal的内容,并手动将新ordinal设置为一个以上。但我想知道是否有一些内置机制可以帮助我。希望有一些注释(如@UniqueConstraint)。

我正在使用Java 7,Hibernate(JPA 2)以及MySQL和H2数据库。

1 个答案:

答案 0 :(得分:0)

您可以使用注释@OrderColumn(name =" ordinal")。将其添加到Round集合中。它定义表中列的名称,包含列表中的索引。