私は自分のプロジェクトに非常に感銘を受けましたが、突然、私が非常に間違ったことをしていることに気付きました。なぜなら、すべての作成、マージ、削除を手動で行っていたからです。
私がしていることは、データベースを作成し、そこからエンティティを作成することです。ここに私のデータベースがありますので、皆さんは私のコンセプトの問題を理解することができます.
簡単に言うと、 Anuser
には がありaddress
、アドレスは 1 つだけです。これは、 、address
によって構成されます。カスケードで作成、更新できるようにしたい。city
state
country
user 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;
..
}
私が思うには、user
has がone adress only
あるので、OneToOne
マッピングする必要がありますか? UserAdress
についても同様country
です。state
city