私はCustomerとAddressと1対多の関係を持っていますが、JPAでこれをどのように表すかわかりません。コレクションでのラップを避けたいので、CustomerEntityのAddressEntityに@OneToManyを使用したくありません。
簡単にするために、1人の顧客が常に2つのアドレスを持つ関係を維持するために使用できる注釈や他の戦略についても疑問に思っています。どんな提案でも大歓迎です!
住所エンティティ
@Data
@NoArgsConstructor
@Entity(name = "address")
public class AddressEntity
{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@?
private CustomerEntity customer;
}
顧客エンティティ
@Data
@NoArgsConstructor
@Entity(name = "customer")
public class CustomerEntity
{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@?
private AddressEntity shippingAddress;
@?
private AddressEntity billingAddress;
}
住所が異なる顧客に属する可能性がある場合。
@Entity
public class AddressEntity
{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
}
@Entity
public class CustomerEntity
{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@ManyToOne
private AddressEntity shippingAddress;
@ManyToOne
private AddressEntity billingAddress;
}
各顧客に一意の住所がある場合は、同じ顧客レコードに住所を保存することをお勧めします。
クラスEmbeddedAddress
を作成し@Embedded
、@Embeddable
アノテーションを使用できます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加