繁体   English   中英

如何在Spring Boot中从两个独立的表中获取数据

[英]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"这里BUYERBG_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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM