java - 检查 hibernate 中允许值的约束注释

标签 java sql hibernate jpa

我在数据库中有 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/

相关文章:

java - Android:使用基本身份验证无法从 http get 请求中获取 xml

java - 如何将平面 map 转换为复杂的 JSONObject?

java - 从 JAVA 到 Sharepoint 2013 REST API 的基本身份验证

CONCAT 函数中的 MYSQL SELECT 语句

java - Hibernate criteria.setFetchSize 未按预期工作

java - 解析 Android 中出现问题的查询

mysql - 如何从数据库计算模式

mysql - sql查询连接一个数据表与另一个不同的数据

hibernate ,如何在现实世界中加载复杂的对象

java - 关于 OptimisticLockException : version is set to newest value