spring - 是否可以仅使用注释约束来过滤数据但不能应用于表的列?
问题描述
我有一个实体用户模型,我在其中使用@NotNull、@Pattern 等注释约束来过滤用户 JSON 发布请求。用户实体有一个用户名、一个密码和一个电子邮件。
@Entity
@Table(name = "users")
public class User {
@Column(name = "password", nullable = false, unique = false)
@NotNull
@Pattern(regexp = "[^\s]*", message = "Password should not contain whitespaces.")
@Size(min = 8, max = 16, message = "Password should be between 8 and 16 characters.")
private String userPassword;
...
我对使用注释约束的结果很满意,因为 spring 可以以某种方式一次将所有约束异常抛出到一个错误响应中。
但是,现在我意识到我需要在加密后保存用户的密码。但不幸的是,如果我理解正确,这些约束注释将应用于数据库表的列,因此如果 enc_password 违反约束但初始密码没有,则无法执行 setPassword(enc_password) 。
那么有没有办法让用户的密码来满足这些注释约束(如果没有像以前那样抛出异常),然后加密密码并能够使用违反这些约束的密码将用户保存在桌面上?
解决方案
推荐阅读
- git - Git push to master 领先一个提交
- swift - 如何防止在 NSOutlineView 中右键单击文本字段重命名
- c# - 根据 orderid 保存单独的单独 xml 文件
- packer - 使用打包器时,如何跳过构建器并直接进入配置器或后处理器阶段?
- javascript - 尝试在 mongoDB 上实现搜索并让结果显示在页面上
- php - 将数组拆分为 2 个对象 laravel php
- css - angularJS在错误时更改表单输入边框颜色
- language-server-protocol - 我是否必须实现部分解析器以支持点触发完成请求?
- python - PyTube 播放列表下载,输出为 1,不下载视频(语法根据文档编写)
- autocad - DXF 文件 - 如何将带有标签文本的“AcDbText”实体链接到几何实体 (AcDbPolyline)?