有没有可能让Hibernate(3.6)用给定枚举的值填充数据库表? 我有以下类:在休眠时使用枚举值填充数据库表
@Entity
public enum Role
{
ROLE_USER_FREE("ROLE_USER_FREE"),
ROLE_USER_STANDARD("ROLE_USER_STANDARD"),
ROLE_USER_PREMIUM("ROLE_USER_PREMIUM"),
ROLE_ADMIN("ROLE_ADMIN");
... constructor/setter/getter etc.
}
我可以使用这个枚举不从其他实体类的任何问题使用
@Enumerated(EnumType.STRING)
public Role getRole()
我的问题是,我怎么能自动填充相应的表的作用? 所有基础逻辑和定义都在XML规范中。当然,我可以通过XSL从这个规范生成一个sql文件,让Hibernate在启动时通过import.sql sematic导入这个文件...但是有没有更多优雅的方式?
表应该是这样的:
|RoleID|RoleName |
| 0 |ROLE_USER_FREE|
....
“你必须自己填写的表格,有一个为Hibernate来为你做它没有内置的方式。”谢谢。在整个互联网上寻找这个声明,但找不到任何东西..现在我可以停止寻找。一个25K的答案是足够真实的^^ – chzbrgla 2011-05-17 09:17:38
我会提醒不要使用序号,因为它只需要一名初级程序员不知道序数问题,并将其添加到顶部或中间以便为您整理其余的数据库。在枚举本身使用一个常量,可以是一个字符串,也可以使用'int id'字段并坚持。 – corsiKa 2015-11-28 06:47:24