gpt4 book ai didi

spring - 翻译约束检查 spring jpa 中的任一列不为空

转载 作者:行者123 更新时间:2023-12-04 01:36:03 26 4
gpt4 key购买 nike

我有以下带有 CONSTRAINT CHECK 的 sql 表。我如何在 spring jpa 中翻译这个?

CREATE TABLE IF NOT EXISTS `myschema`.`product` (
`id` INT(10) NOT NULL AUTO_INCREMENT,
`barcode` VARCHAR(10) NULL DEFAULT NULL,
`vrcode` VARCHAR(10) NULL DEFAULT NULL,
`name` VARCHAR(50) NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE INDEX `barcode_UNIQUE` (`barcode` ASC),
UNIQUE INDEX `vrcode_UNIQUE` (`vrcode` ASC),
CONSTRAINT CHECK (barcode IS NOT NULL OR vrcode IS NOT NULL))
ENGINE = InnoDB
AUTO_INCREMENT = 1
DEFAULT CHARACTER SET = latin1;

我想要列条形码或 vrcode 之一不能为空。
@Data
@RequiredArgsConstructor
@Entity
@Table(name = "product")
public class Product implements Serializable {

private static final long serialVersionUID = -1L;

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private int id;

@Column(name = "barcode")
private String barcode;

@Column(name = "vrcode")
private String vrcode;

@Column(name = "name")
private String name;
}

最佳答案

您必须像这样添加对实体本身的检查

@Data
@RequiredArgsConstructor
@Entity
@Table(name = "product")
@Check(constraints = "barcode IS NOT NULL OR vrcode IS NOT NULL")
public class Product implements Serializable {
...

注: @RequiredArgsConstructor已经提供了注释 @Data

关于spring - 翻译约束检查 spring jpa 中的任一列不为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59524725/

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