【发布时间】:2015-03-05 19:39:42
【问题描述】:
我有一个Game 类,每个游戏都有许多Round 实例(一对多)。这两个类都有一个自动递增的id 字段作为它们的主键。
我希望Round 有另一个名为ordinal 的字段,每当我创建一个与单个Game 关联的新Round 对象时,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 数据库。
【问题讨论】:
标签: java mysql hibernate jpa auto-increment