Jam*_*ams 5 java orm entity annotations hibernate
我想要一个实体的列,它只接受一组枚举值中的一个。例如,假设我有一个带有字符串列“petType”的 POJO/实体类“Pet”。我希望 petType 只允许以下三个值之一:“cat”、“dog”或“gorilla”。我将如何注释 getPetType() 方法以创建强制执行此操作的数据库级约束?
我允许 Hibernate 在应用程序启动时通过将 Hibernate 属性“hbm2ddlauto”设置为“update”来创建或更新我的数据库表。
我曾尝试将参数化用户类型与 @Type 注释结合使用,但这似乎并未对数据库列本身提供任何类型的约束。除了在 columnDefinition 元素中使用一些 SQL 之外,似乎没有办法在 @Column 注释中指定这种约束,而且我很犹豫要不要走这条路,因为似乎无论我使用什么都不会有跨平台/数据库独立(对我来说很重要,因为我在 Oracle 上运行我的生产代码,但我使用 HSQLDB 和 Derby 在本地进行测试)。也许我想要做的只是使用注释无法完成。
在此先感谢您提供有关此主题的任何见解。
创建 PetType 类型的枚举并将映射定义为
@Enumerated(EnumType.STRING)
这样,字符串就会存储在数据库中,并且您的 java 枚举类型仅接受您指定的 3 个值。
归档时间: |
|
查看次数: |
1748 次 |
最近记录: |