当前位置: 首页 > 知识库问答 >
问题:

如果属性对JPA无效,如何在数据库中插入默认值

关志勇
2023-03-14

我想从dto对象中设置值,并使用save jpa repository方法将其插入数据库。如果属性无效(null或大小过长),我可以使用jpa插入默认值吗?

dto对象:

public class SocleList implements Serializable {

    private static final long serialVersionUID = -5008625218377596565L;
    @JsonProperty("records")
    @Valid
    private List<Socle> SocleList;
}

@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString

public class Socle implements Serializable {

    private static final long serialVersionUID = -1864310486952111265L;

    @NotNull
    public int iDTechn;

    @NotNull
    @Max(value = 99999)
    private Integer code;

    @NotNull
    private String codeType;

    @NotNull
    @Size(min = 1, max = 2)
    private String red;

    private @NotNull
    @Max(value = 99999)
    Integer FPrinci;

    private @NotNull
    @Max(value = 99999)
    Integer surface;

    @NotNull
    @Size(min = 1, max = 2)
    private String Xnseigne;
}

我使用验证器来控制值:

public static int validate(SocleList SocleList,
        Validator validator) {
        Set<ConstraintViolation<SocleList>> violations;
        violations = validator.validate(socleList);

        log.info("Nombre de violations : {}", violations.size());

        for (ConstraintViolation<SocleList> constraintViolation : violations) {

        log.info("Valeur '{}' incorrecte pour '{}' : '{}' "
        , constraintViolation.getInvalidValue()
        , constraintViolation.getPropertyPath()
        , constraintViolation.getMessage());
        }
        return violations.size();
        }

共有1个答案

岳谦
2023-03-14

我使用了一种基本方法来验证属性值,例如:

 @JsonProperty("Code")
    @NotNull
    @Max(value = 99999)
    private Integer code;

我通过这种方法检查它:

 public void setValidCode(Integer code) {
        if (code== null || code > 99999)
            this.code= 0;
        else
            this.code= code;
    }
 类似资料:
  • 本文向大家介绍如何在MySQL ENUM数据类型中插入默认值?,包括了如何在MySQL ENUM数据类型中插入默认值?的使用技巧和注意事项,需要的朋友参考一下 我们可以借助ENUM数据类型的DEFAULT属性来实现。如果未指定值,则DEFAULT属性会使ENUM数据类型具有默认值。换句话说,我们可以说INSERT语句不必为此字段包含值,因为如果不包含该值,那么将插入DEFAULT之后的值。DEFA

  • 我为此挣扎了很长时间。我正在更改代码,需要将默认值设置为特立尼达岛的selectOneRadio元素。我有来自数据库的对象(例如称为result)。此对象具有属性decision。在select元素中,value参数的使用方式是。 现在我需要结果。decision为空,将值设置为True。如果值为False,则将值设置为False。如果值为True,则将值设置为True。我在模板中尝试了类似的方法

  • 问题内容: 我有一个包含标识列和代表创建日期的列的表: 由于标识列本身会生成一个值,而CreationDate始终将是当前日期(),因此我可以添加一行,这要归功于: 但是,如果我想添加三个记录,该怎么办? 当前解决方案(编辑了一些输入,因为它没有任何意义) 现在,为了做我想做的,我添加了几行: 虽然,我更希望知道多行的等效项,以防稍后添加另一列具有默认值的列。 有没有办法用或类似的方法将N行插入表

  • 我想防止使用PHP将值从表单复制到数据库表中。 我在数据库中有一个表数据,它有一个atribute dataid(自动递增为主键)、data1、data2。 我有一个像这样的简单表格 它script.php插入数据到数据库 但它会将表单中的任何数据插入数据库。如果data1已经存在,如何防止向数据库插入数据?

  • 我想发出一个将数据插入数据库的请求。该表有4列:ID_DOCUMENT(PK)、ID_TASK、DESCRIPTION、FILEPATH 当我运行我的测试时,我得到了这个错误:由:org.hibernate.hql.ast.querysyntaxException引起的:预期打开,在第1行第32列附近发现'c'[insert into TaskDocumentEntity c(c.IDTask,c

  • 我的准备好的语句有问题,但我无法找出错误所在。我正在尝试将URI链接插入数据库。 错误