我有一个名为GROUPS的表,其中包含 GROUP_ID 列,其值为
GRP001,GRP002,GRP003
等等。现在,每次插入新行时,我都必须插入一行 (当前)GROUP_ID =(最高)GROUP_ID + 1,例如,如果最高GROUP_ID = GRP003我在插入新行时必须生成新的GROUP_ID GRP004。
我怎样才能使用java?
我目前正在程序中使用Hibernate和Struts 2
有没有办法用hibernate处理这个问题?或者我是否必须编写额外的代码来锁定表,检查db for max Id(然后增加它)并最终释放锁?
答案 0 :(得分:1)
我记得曾经解决过与此类似的问题。我所做的是创建一个由hibernate支持的自定义主键生成器。
这个人在这里解释清楚:"Custom Hibernate Primary Key Generator"
基本上你只需要实现org.hibernate.id.IdentifierGenerator
,所有都应该设置。
请注意,上述示例中实现的解决方案依赖于数据库。但我认为,有时候常识应该胜过过度工程。