gpt4 book ai didi

java - Hibernate 检查注解

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:50:00 25 4
gpt4 key购买 nike

我有一个包含三个字段的表,比如 a、b、c。我想添加一个约束,确保如果 a 不为空,则 b 和 c 也不为空。我已经使用以下 SQL 完成了该操作

ALTER TABLE sample 
ADD CONSTRAINT no_nulls
CHECK (CASE WHEN a IS NOT NULL THEN b IS NOT NULL AND c IS NOT NULL END)

有没有办法使用hibernate注解@Check达到同样的效果?

我找不到带有该注解的有用示例,开发人员是否倾向于根本不使用它?

最佳答案

是的,如果像这样在类级别使用 @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 评论重写了您的条件。)。 @Check注解的constraints子句需要引用@Columnname属性(必须是纯SQL)。

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

关于java - Hibernate 检查注解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31983454/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com