我有一个像这样的地址实体:
@Entity
public class Address implements java.io.Serializable {
@Id @GeneratedValue(strategy = IDENTITY)
private Long id;
@Size(max = 100)
private String street;
@Size(max = 15)
private String nr;
@Field
@Size(min = 1, max = 20) @NotBlank
private String city;
}
Run Code Online (Sandbox Code Playgroud)
这是其他几个实体的一部分.对于一个这样的实体,地址是可选的.我有一个视图,我们的用户可以通过几个表单输入编辑整个实体,包括几个地址字段.
为了能够编辑地址,我使用空地址实体初始化父实体.
现在问题是:Address当所有地址字段都为空时,我不想在实体上持久存在.为了实现这一点,我需要跳过实体的验证,如果(并且仅当)所有字段Address都为空.我该如何以最优雅的方式做到这一点?
我目前正在做的是完全跳过bean验证和<o:validateBean disabled="true" />提交按钮,null如果它是空的,则设置地址.但这听起来像是一个完全黑客,因为它在所有情况下禁用所有验证.我怎么能做得更好?