gpt4 book ai didi

MySQL/JPA : How create a correclty relation and cascade?

转载 作者:行者123 更新时间:2023-11-29 13:56:01 25 4
gpt4 key购买 nike

我对我的项目印象深刻,但突然我注意到我做的事情非常错误,因为每次创建、合并、删除都是我手动执行的,但我应该让 JPA 为我处理这些事情,对吧?

我所做的是创建数据库,然后从中创建实体。所以here is my database这样你们就能理解我的概念问题。

简单来说:一位用户有一个地址,而且只有一个地址。该地址citystatecountry组成。我希望能够通过级联创建、更新用户地址

我认为我的由 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;
..
}

我认为用户只有一个地址,所以它应该是OneToOne映射?对于国家城市UserAdress也是如此。

最佳答案

如果您想允许多个用户使用同一地址,@ManyToOne 就是您想要的。如果您使用@O​​neToOne,则每个地址只能有一个用户。

关于MySQL/JPA : How create a correclty relation and cascade?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15853034/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com