0

我有一个名为 GROUPS 的表,其中有一列GROUP_ID,其值为

GRP001、GRP002、GRP003

等等。现在,每次插入新行时,我都必须使用(当前) GROUP_ID= (highest)GROUP_ID+ 1 插入它,例如,如果最高 GROUP_ID= GRP003 我必须在插入新行时生成一个新的 GROUP_ID GRP004 。

我怎样才能使用java做到这一点?

我目前在我的程序中使用 Hibernate 和 Struts 2

有没有办法使用hibernate来处理这个问题?或者我是否必须编写额外的代码来锁定表,检查数据库的最大 ID(然后增加它)并最终释放锁?

4

1 回答 1

1

我记得曾经解决过类似的问题。我所做的是创建了一个由 hibernate 支持的自定义主键生成器。

这家伙在这里解释得很清楚:“Custom Hibernate Primary Key Generator”

基本上你只需要实现org.hibernate.id.IdentifierGenerator,一切都应该设置好。

请注意,上面示例中实现的解决方案是依赖于数据库的。但我认为有时常识应该胜过过度设计。

于 2013-03-31T16:57:02.643 回答