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

@Future的实现在哪里定义?

刘胜泫
2023-03-14

Java坚持

@Entity
@Table(name = "party")
public class PartyEntity {
    @Future
    public DateTime start;
}

javax.validation.constraint.Future注释是在没有特定实现的情况下定义的。

@Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER })
@Retention(RUNTIME)
@Documented
@Constraint(validatedBy = {})
public @interface Future {
    // ...
}

实际验证在哪里实施?如何扩展此功能以允许管理员覆盖?

虽然这里没有显示,但我已经将组用于此约束的另一个目的。

共有2个答案

邢勇
2023-03-14

JSR303验证与JPA没有太多直接关系。当然,也可以用它来验证JPA实体。实际问题是什么——很可能你想遵循php-coder的建议,通过注释使用实现新的注释和约束集验证。

如果由于某种神秘的原因,您真的必须更改未来注释在实现中的处理方式,那么解决方案当然是特定于实现的。假设您使用Hibernate Validator 4.3,验证约束的实际检查发生在:

  • 组织。冬眠验证器。内部的约束验证程序。FutureValidatorForDate

选择这些实现的方式会受到org.hibernate.validator.internal.metadata.core.ConstraintHelper的影响。我建议将您使用的实现源附加到您的IDE,因为这样很容易导航到这种细节。

茹正祥
2023-03-14

由hibernate validator提供的许多验证器的实现:http://docs.jboss.org/hibernate/validator/5.0/reference/en-US/html/validator-usingvalidator.html#validator-定义内置的约束

如果您使用Maven,只需将以下依赖项添加到pom.xml文件

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-validator</artifactId>
    <version>5.0.0.Alpha1</version>
</dependency>

如何扩展此功能以允许管理员覆盖?

最简单的方法是自己写。

 类似资料:
  • 问题内容: 我无法在任何地方找到append()或任何其他内置函数的实现代码?我尝试通过godoc查找代码,并使用IDE的跳转到定义功能。可能是我在看错地方。谁能告诉我看实际实施的方式吗? 问题答案: 您可能会感兴趣: 代码生成位在这里https://github.com/golang/go/blob/master/src/cmd/compile/internal/gc/ssa.go 和,由前者使

  • 问题内容: 我正在使用来自包java.sql的接口连接 实际上,我虽然是一个Class,但是当我尝试查看源代码时却发现它是一个Interface。 在Connection接口的源代码中,每种方法只有一行,没有任何实现!! 是什么让这个界面正常工作? 要连接的数据库:MySql 连接源代码页:http : //www.docjar.com/html/api/java/sql/Connection.j

  • 问题内容: 在和,只有抽象方法和分别。 有谁知道实现它们的实际代码在哪里? 我想知道如何与TCP堆栈通信。 此外,还有更多抽象功能,例如。他们的代码在哪里? 问题答案: 具有已实现该方法的实现。它使用扩展了实现方法的委托 大多数IDE可以跟踪所有类,对象和方法,并下载源文件。Fx。可以为您做到这一点。

  • 我找不到那个方法。

  • 问题内容: 该方法在哪里执行?该的.java类是创建一个合同的接口方法,但我不能找到源代码,显示它是如何工作的。有谁知道我怎么找到它?我了解dom.js,并且可以看到.java中的所有方法如何工作,但找不到我们所谓的源代码实现。 我认为,要真正了解工作原理,我需要了解基础方法的工作原理 。我不知道它最终如何调用中的 方法。 问题答案: 实现细节特定于驱动程序。 但是您可以在中找到此处的方法。所有方

  • 我想在我的项目中正确配置日志记录,并删除了无处不在的警告 通过Maven排除日志记录实现。现在,我最后 引用的网站段落不包含任何要做的提示和存在的问题,比如使用logback/slf4j时抛出的异常,建议做我Afaik做的事情。我的现在是 我需要以便能够编译项目。旧的API请求从何而来?