use*_*655 5 spring hibernate spring-data spring-data-jpa
我有以下带有约束检查的 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;
Run Code Online (Sandbox Code Playgroud)
我希望列条形码或 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;
}
Run Code Online (Sandbox Code Playgroud)
您必须添加对实体本身的检查,如下所示
@Data
@RequiredArgsConstructor
@Entity
@Table(name = "product")
@Check(constraints = "barcode IS NOT NULL OR vrcode IS NOT NULL")
public class Product implements Serializable {
...
Run Code Online (Sandbox Code Playgroud)
注意:@RequiredArgsConstructor已提供注释@Data
| 归档时间: |
|
| 查看次数: |
1442 次 |
| 最近记录: |