gpt4 book ai didi

java - 创建新实体时获取连接表

转载 作者:行者123 更新时间:2023-12-01 19:40:03 26 4
gpt4 key购买 nike

我有一个 Customers 表,其中包含 AddressEmbedded

我还有一个硬编码表Countries,其中我已经为每个国家/地区提供了一个区域,国家/地区是主键。

我想加入 AddressEmbeddedCountries,因此我使用了 ManyToOne 并将 CountryEntity 放入 地址嵌入

但我收到一个错误,指出 mapstruct 无法生成 setCountry

所以问题是,如何制作AddressEmbedded.setCountry(string country)?它应该调用数据库来获取该国家/地区的相应区域,但在 setter 中添加数据库调用似乎是错误的。

以下是实体定义:

    @AllArgsConstructor
@NoArgsConstructor
@ToString
@Data
@Embeddable
public class AddressEmbedded {

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "country")
private CountryEntity country;
}
    @Data
@Entity
@Table(name = "Countries")
public class CountryEntity {

@Id
@Column(name = "country")
private String country;

@Column(name = "region")
private String region;
}
    @Data
@Entity
@Table(name = "Customers")
public class CustomerEntity {
@Embedded
private AddressEmbedded address;
}

最佳答案

这已通过映射结构映射解决

    @Mappings(
@Mapping(target = "address.country", source = "countryEntity")
)
CustomerEntity fromSubmitCustomerDetailsRequestToCustomerEntity(SubmitCustomerDetailsRequest request, CountryEntity countryEntity);

@Mappings(
@Mapping(target = "address.country", source = "customerEntity.address.country.country")
)
GetCustomerDetailsResponse fromCustomerEntityToGetCustomerDetailsResponse(CustomerEntity customerEntity);

我在 fromSubmitCustomerDetailsRequestToCustomerEntity 中有 CountryEntity 因为在调用它之前我验证了我有一个存在的国家/地区。

关于java - 创建新实体时获取连接表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59180997/

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