我在数据库中有 Consumer 表,我对 consumer_type 列有检查约束,如下所示:
ALTER TABLE consumer
ADD CONSTRAINT Check_consumer_consumer_type CHECK (consumer_type IN ('ACCOUNT','ORGANIZATION'))
现在从 hibernate 端我想添加检查约束注释,这将只允许消费者类型表中的“ACCOUNT”和“ORGANIZATION”值。
为此我应该使用哪个 hibernate/jpa 注释?
最佳答案
假设您在实体中使用 String
表示消费者类型,您可以轻松地将其替换为枚举,并且 Java 的类型安全将确保您无法将任何其他内容传递给它。
使用 EnumType.STRING
,这些值将作为字符串存储在您的数据库中(并在您加载实体时映射回枚举),因此不需要更改您的数据。
例子
@Entity
public class Consumer {
public static enum ConsumerType {
ACCOUNT, ORGANIZATION
}
@Enumerated(EnumType.STRING)
@Column(name="consumer_type", nullable=false)
private ConsumerType consumerType;
// Other properties, getters/setters, ...
}
关于java - 检查 hibernate 中允许值的约束注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33367331/