[英]How to Get data from two independent table in Spring Boot
我在Spring Boot和Hibernate中还很陌生。 在这里我面临一个概念上的问题。 我有以下3个实体
ModelBuyer.java
@Entity(name="BUYER")
public class ModelBuyer {
@Id @GenericGenerator(name = "custom_sequence", strategy =
"com.test.IdGenerator")
@GeneratedValue(generator = "custom_sequence")
@Column(name= "BUYER_ID")
private long buyerId ;
@OneToOne
@JoinColumn(name= "COUNTRY_ID", nullable =true)
private ModelCountry countryId ;
@Column(name= "BUYER_NAME")
private String buyerName ;
.....
//getter setter
ModelCountry.java
@Entity(name = "BG_COUNTRY")
public class ModelCountry {
@Id
@GeneratedValue
@Column(name = "COUNTRY_ID")
private long countryId;
@Column(name = "COUNTRY_NAME")
private String countryName;
@Column(name = "SHORT_CODE_ISO")
private String isoCode;
.....
//getter setter
ModelPhone.java
@Entity(name="BG_PHONE")
public class ModelPhone {
@Id @GeneratedValue
@Column(name="PHONE_ID")
private long phoneId;
@Column(name="OWNER_ID")
private long ownerId;
....
//getter setter
在这里,一个买家可能有多个电话号码。 我想获取买家名称,国家/地区以及他们的电话号码的列表。 如果我使用JpaRepository的findAll()
,它将返回带有国家名称但不包含其联系电话的买家列表。 但是我也该如何获取电话号码列表。 我的sql查询看起来像"Select * from BUYER A,BG_PHONE B where A.buyerId=B.ownerId"
这里BUYER
和BG_PHONE
是两个独立的表,所以我不能像对BG_COUNTRY
那样映射它们。 那么如何在春季使用jpa做到这一点。 我必须将结果列表传递给百里香引擎。
在这里,一个买家可能有多个电话号码。 我想获取买家名称,国家/地区以及他们的电话号码的列表。
然后,您应该在“买方”和“电话”之间建立一个“一对多”关联。 并且ownerId
应该替换为对买方的ManyToOne(即,您将在两个实体之间创建双向关联)。
还要注意,带国家的OneToOne应该是ManyToOne,除非给定国家/地区只有一位买家。
这里BUYER和BG_PHONE是两个独立的表,因此我无法像对BG_COUNTRY那样映射它们
它们不是独立的,因为BG_PHONE包含引用BG_COUNTRY的ID的列。 因此,您可以并且应该在相应实体之间创建关联。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.