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

利用Jooq和JPA的@column注释验证字段长度

锺威
2023-03-14

我试图通过使用JSR303验证来验证用户输入的数据。我试图实现的一个验证是检查每个字段的输入值大小是否超过相应列的最大大小。

@ComplexValidation
public class Person {

    @Column(table = "PERSON_DETAILS", name = "FIRST_NAME")
    private String firstName;

}
    null
Column columnAnnotation = field.getDeclaredAnnotation(Column.class);
if (columnAnnotation != null) {
    String tableName = columnAnnotation.table();
    String fieldName = columnAnnotation.name();

    TableField tableField = (TableField) ((TableImpl) table(tableName)).field(fieldName);
    int columnLength = tableField.getDataType().length();

    if (fieldValue.length() > columnLength) {
        constraintValidatorContext
            .buildConstraintViolationWithTemplate("exceeded maximum length")
            .addPropertyNode(field.getName())
            .addConstraintViolation();
    }
}

欢迎任何其他建议:)

共有1个答案

胡博艺
2023-03-14

假设您只有一个生成的模式(例如public),您可以从那里访问表:

Table<?> table = PUBLIC.getTable(tableName);

参见schema.gettable(String)

 类似资料:
  • 这里有一个小问题,希望这个问题也能帮助其他想知道更多关于注释验证的人 我目前正在研究Spring,目前,我计划尝试定制注释验证。 我搜索了很多,现在我知道主要有两种验证,一种用于控制器,另一种是使用@Valid的注释方法 在此之后,我需要创建验证器本身: 另一个想法是使用同一个类作为一个例子,它说我想要生日,confirmBirthday和birthdayMessdage只能同时为null或反对。

  • 问题内容: 有没有一种方法可以使用此处定义的注释来定义Hibernate验证规则,说明至少一个字段不能为null? 这将是一个假设的示例(实际上不存在): 在所示的情况下,fieldA可以为null或fieldB可以为null,但不能同时为两者。 一种方法是创建自己的验证器,但是我想避免它已经存在。如果您已经验证过,请分享一个验证人…谢谢! 问题答案: 我终于写了整个验证器: 用法示例:

  • 问题内容: 我刚刚开始测试JSR-303 Bean验证,并且想知道是否有可能。我们的应用程序中有一个用于所有String字段的默认正则表达式。如果我想使用bean验证来应用此功能,我想我需要在表单对象中注释每个字段。 一击是否可以将@Pattern应用于所有字符串(或某些字段)?我们正在WebLogic 10.3.4上使用Hibernate实现,并以JSF2.0为前端。验证应该独立于视图,因为我可

  • 我有一组实体类,它们是由Hibernate工具生成的。都有@列注释,如: 我想编写一个JUnit测试来验证我对数据库的输入,但JUnit验证只在添加以下内容时有效: 我不希望添加任何注释,因为这样我需要更改自动生成的实体类。如何让JUnit测试使用第一个生成的@列注释?谢谢 我的JUnit测试(不适用于仅@列,但适用于额外的@NotNull和@size): 公共类CountryEntityTest

  • 我正在开发一个java spring mvc应用程序。我已经实现了一个自定义的验证注释来验证某些字符串(例如)。这是我的注释体: 这是我的类:

  • 问题内容: 我想使用注解针对一组值验证字符串。 我想要的基本上是这样的: 要么 我还想根据在中设置的值对其他变量进行一些验证: 我想不出一种通过自定义批注实现此目的的方法。 有人请帮助我。 问题答案: 这就是我所做的。 注解 验证类别 我用它像 现在,我需要弄清楚如何执行条件检查。如果为String,则maxValue和minValue应该为null或零。 有任何想法吗?