如何在java中生成字母数字ID?

时间:2013-03-31 16:06:03

标签: java hibernate java-ee sequence auto-increment

我有一个名为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(然后增加它)并最终释放锁?

1 个答案:

答案 0 :(得分:1)

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

这个人在这里解释清楚:"Custom Hibernate Primary Key Generator"

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

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