0

私は自分のプロジェクトに非常に感銘を受けましたが、突然、私が非常に間違ったことをしていることに気付きました。なぜなら、すべての作成、マージ、削除を手動で行っていたからです。

私がしていることは、データベースを作成し、そこからエンティティを作成することです。ここに私のデータベースがありますので、皆さんは私のコンセプトの問題を理解することができます.

簡単に言うと、 Anuserには がありaddress、アドレスは 1 つだけです。これは、 、addressによって構成されます。カスケードで作成、更新できるようにしたい。citystatecountryuser address

JPAによって生成されたマッピングが間違っている(または理解が間違っている)と思います。表示させてください:

public class User {
  ..
  //bi-directional many-to-one association to UserAddress
  @ManyToOne(cascade = CascadeType.ALL) // should be one to one ?
  @JoinColumn(name="id_user_address")
  private UserAddress userAddress;
  ..
}

public class UserAddress {
  ..

  //bi-directional many-to-one association to User
  @OneToMany(mappedBy="userAddress", fetch=FetchType.EAGER)
  private List<User> users;

  //bi-directional many-to-one association to AddressCity
  @ManyToOne
  @JoinColumn(name="id_city")
  private AddressCity addressCity;

  //bi-directional many-to-one association to AddressState
  @ManyToOne
  @JoinColumn(name="id_state")
  private AddressState addressState;

  //bi-directional many-to-one association to AddressCountry
  @ManyToOne
  @JoinColumn(name="id_country")
  private AddressCountry addressCountry;
  ..
}

私が思うには、userhas がone adress onlyあるので、OneToOneマッピングする必要がありますか? UserAdressについても同様countryです。statecity

4

1 に答える 1