Hibernate Check Annotation

时间:2015-08-13 08:45:18

标签: java sql hibernate jpa check-constraints

我有一个包含三个字段的表,比如a,b,c。我想添加一个约束,确保如果a不为null,那么b和c也不为null。我已经使用以下SQL

完成了这项工作
static $table = DBPREFIX . '_blog';

有没有办法使用hibernate注释实现相同的效果@Check?

我找不到这个注释的有用示例,开发人员根本不会使用它吗?

1 个答案:

答案 0 :(得分:6)

是的,如果在类级别使用@Check,则可以这样:

@Entity
@Check(constraints = "COL_A IS NULL OR (COL_B IS NOT NULL and COL_C IS NOT NULL)")
public class Sample {

    @Column(name = "COL_A")
    private Long a;

    @Column(name = "COL_B")
    private Long b;

    @Column(name = "COL_C")
    private Long c;

}

(注意我用@jarlh评论重写了你的病情。)。 constraints注释的@Check子句需要引用name的{​​{1}}属性(它必须是纯SQL)。

@Column注释需要在类级别,因为Hibernate bug