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

spring Hibernate Bean验证@有效

龙隐水
2023-03-14

我知道这在这个论坛上不是新问题,但我很困惑我该怎么做。

问题:我正在用spring mvc+Hibernate开发一个应用程序。对于服务器端验证,我在controller中使用@valid注释,在bean中使用@null和@notnull注释。

例如:

public class User implements Serializable {

    private static final long serialVersionUID = 2158419746939747203L;

    @Id
    @Column(name="USER_ID")
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    private long userId;

    @Column(name="USERNAME", unique = true)
    @NotEmpty @NotNull @Size(min=6, max=20)
    private String username;

    @Column(name="PASSWORD")
    @NotEmpty @NotNull @Size(min=6, max=20)
    private String password;

这个验证很好地进行,数据也保存在DB中。

但我想验证唯一约束,引用完整性和其他约束使用注释没有任何验证器类。

有可能吗?如果没有,那么什么是最好和最简单的方法来做它(更少的编码)?如果framework能为我做这件事,我会很感激的。

共有1个答案

邓翼
2023-03-14

索拉,

对于表中的唯一约束,

 @Id

您也可以通过hibernate注释来强制引用完整性,例如。

@OneToOne(mappedBy = "foo")

下面是一个示例帖子

使用hibernate的一对一引用完整性

这里有一个非常详细的教程也探索相同的:

http://www.journaldev.com/2882/hibernate-tutorial-for-beginners-using-xml-annotations-and-property-configurations

您可以编写一个“CustomUniqueConstraintValidator”,类似于

http://www.journaldev.com/2668/spring-mvc-form-validation-example-using-annotation-and-custom-validator-implementation

您还可以将html" target="_blank">参数从批注传递给自定义验证器。例如。

@CustomValidDate("columnName")

生成适用于任何字段/列%1的泛型类。您可以编写一个通用的自定义验证器2。使用annotaiton参数(在每个类属性上)传入表名和列名。3.然后在验证器中,您可以使用表名、列名来应用您的验证逻辑(唯一等)。

谢谢,保罗

 类似资料:
  • 接口说明 验证验证码 如需调用,请访问 开发者文档 来查看详细的接口使用说明 该接口仅开放给已获取SDK的开发者 如开启https功能,请求地址的协议应改为https,如:https://www.example.com/wish3dearth/api/access/v1.0.0/getLicenseInfo API地址 GET /authcenter/api/verify/v1.0.0/check

  • 我正在寻找表单验证的最有效方法,我想知道我目前的植入是否不仅是可能的,而且在动态缩放时是可持续的。看看吧: (警告:忽略愚蠢的HTML类名) 是否有一种方法可以在输入中将forEach空白字段添加到数组中的错误字符串?现在,它只在数组中抛出一个字符串,作为它命中的第一个空白字段。

  • 我需要应用一个双值验证,这需要与圆周率匹配。我正在考虑使用@pattern(regex=“3.14159265359”)。这是使用Hibernate验证约束应用这样一个约束的最佳方式吗?谢谢

  • 我正在使用Spring Boot 2.2.0用java bean验证框架构建一个restful服务。Hibernate-Validator在幕后使用。验证工作得很好,但在一个字段与约束不匹配后会引发异常。我想先验证所有字段,然后给消费者一个包含所有错误的响应。这可能吗?

  • 我正在利用JAXB实现一个SOAP服务的内存API网关。其中一个模式元素是“choice”,choice块中有几个元素。 我试图在客户机名称空间中镜像生成的JAXB类,因此对于这个“选择”场景,我有一个具有多个属性的bean类,其中只有一个属性是非null的。 我试图使用javax中的@NotNull注释。验证,以及验证工厂和验证程序。然而,一个“选择”的场景让这变得有点复杂。我猜这将需要一个自定

  • 我正在尝试验证密码字段是否存在。我想允许某人编辑用户,他们可能想更改用户密码,也可能不想更改用户密码。所以我想我可以使用Laravels验证规则,特别是“有时”规则来实现这一点。我有一套规则: 例如,对于其他字段,通常会有其他规则,而对于密码,则会有更严格的规则。如果传递的数据中存在密码字段,我希望这只应用min:8规则,但是如果我将密码字段留空,则会出现一个验证错误,表明密码字段是必需的。 我不