java - Hibernate 非负值约束

标签 java database hibernate check-constraints

我有表格,下面是代码片段。

    package test;

    import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.Id;
    import javax.persistence.Table;
    import javax.persistence.UniqueConstraint;

    @Entity
    @Table(uniqueConstraints = { @UniqueConstraint(columnNames = "code")},
           name = "coupons")
    public class Coupon implements  Serializable {

        private static final long serialVersionUID = 5534534530153298987L;

        @Id
        @GeneratedValue
        @Column(name = "id")
        private long id;

        @Column(name = "available_count")
        private Integer availableCount = 1;

        public Integer getAvailableCount() {
            return availableCount;
        }

        public void setAvailableCount(Integer availableCount) {
            this.availableCount = availableCount;
        }
    }

如何进行约束以允许 availableCount 仅为非负数?

最佳答案

如果您需要一个实际的数据库约束,并且您的模式是由 Hibernate 生成的,您可以使用 @Check 注释:

@Entity
@Table(uniqueConstraints = { @UniqueConstraint(columnNames = "code")},
        name = "coupons")
@Check(constraints = "available_count >= 0")
public class Coupon implements  Serializable { ... }

关于java - Hibernate 非负值约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4725149/

相关文章:

mysql - 选择实体包含列表的位置,哪些元素具有另一个列表

java - Android添加imageview以编程方式修复所有屏幕的大小

java - 确定程序的时间和空间复杂度

MYSQL按另一个表的计数过滤

php - ajax 和 php 更新 mysql

java - IBM DB2 9.7 错误代码 840,select 语句列表太大

Spring JPARepository 更新字段

java - 如何在创建 jar 文件时包含库文件而不单独复制库

java - 即使用户破坏了android中的应用程序,如何使该应用程序运行?

node.js - 按 MongoDB 中具有相同字段的文档数排序/分组