クラスがあり、それがとクラスAddress
の両方の子であるとしましょう。の場合、ビジネスは Address のCityフィールドが必須であることのみを気にします (連絡先は、人の名前と電話番号、およびその場所 (City) に関するものです)。一方、私たちから紙のメールを受け取る可能性のある の場合は、完全な住所情報が必要なので、Line1、City、State/Province、Country、PostalCode/Zipがすべて必要です。Contact
Vendor
Contact
Vendor
私が考えたのは、CityContactAddress
フィールドで使用する を作成してから、より多くのフィールドを で装飾するサブクラスを作成することでした。 @NotBlank
VendorAddress
@NotBlank
これが最善のアプローチであるかどうかはわかりません (また、ドメイン オブジェクトと Hibernate のマッピングが複雑になります)。誰かが正しいパターンのヒントを持っていますか?
編集:詳細
public class Contact {
private Address address;
}
public class Vendor {
private Address address;
}
public class Address {
private String line1;
@NotBlank
private String city;
private String state;
private String country;
private String postalCode;
}
Address
次に、すべての Address の使用で他のフィールドが必要になるわけではないため、@NotBlank
on Cityのみを持つことができます。
また、これらのクラスを JSF で使用したいと思います (サービス層で手動で呼び出すだけでなく、「無料で検証」を行います)。これは「伝統的な」JSF/Spring/Hibernate アプリです。
多分http://docs.jboss.org/hibernate/validator/5.0/reference/en-US/html_single/#chapter-groupsを使いたいですか? これがJSFの「無料」検証とどのように相互作用するかわかりません