次のような住所エンティティがあります。
@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;
}
これは、他のいくつかのエンティティの一部です。そのようなエンティティの 1 つでは、アドレスはオプションです。ユーザーがいくつかの住所フィールドを含むいくつかのフォーム入力を介してエンティティ全体を編集できるビューがあります。
住所を編集できるようにするために、親エンティティを空の住所エンティティで初期化します。
Address
問題は次のとおりです。すべてのアドレス フィールドが空の場合、エンティティに を保持したくありません。それが機能するには、エンティティのすべてのフィールドAddress
が空の場合 (およびその場合にのみ)、エンティティの検証をスキップする必要があります。最もエレガントな方法でそれを行うにはどうすればよいですか?
私が現在行っているのは、送信ボタンの Bean 検証を完全にスキップし、空の場合<o:validateBean disabled="true" />
はアドレスを設定することです。しかし、これはあらゆる場合にすべての検証をnull
無効にするため、完全なハックのように聞こえます。どうすればもっとうまくやれるでしょうか?