Hibernate Validator唯一列禁用更新另一列

时间:2017-02-07 06:32:28

标签: java hibernate validation

我正在使用带有Hibernate Validator的spring boot 1.4.1。在我的实体上添加了自定义约束验证(UniqueRoute),如此

@Entity
public class Route extends BaseEntity {
private static final long serialVersionUID = 1L;

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "route_id")
private Integer routeId;

@Column(name = "name")
@Size(max = 150)
@UniqueRoute(message="Route name already in use")
private String name;

@Column(name = "acronym")
@Size(max = 5)
@NotEmpty(message="Route acronym is required.")
private String acronym;

问题

验证在创建实体期间应该正常工作,但问题是在更新期间,我相信即使路由存在,用户也应该能够更新acronym,但在这种情况下,在更新期间路由已存在,用户无法更新首字母缩略词

不应允许用户将路由名称更新为存在的其他名称,但同时即使名称存在,用户也应该能够更新首字母缩写词(唯一)

更新

我想获得routeId以便我可以在更新期间用于验证。 基本上取id并检查名称值是否更改,如果没有,则isValid为真,但如果更改且名称存在则isValid否则为true。

所以我想问题是如何在routeId实施级别访问ConstraintValidator

0 个答案:

没有答案