美文网首页
OneToMany 一端复合主键做多端的外键

OneToMany 一端复合主键做多端的外键

作者: 牧笛2017 | 来源:发表于2019-03-08 22:22 被阅读0次

一端有个复合主键,作为多端的外键,数据表如下:


代码:

复合主键的定义:

@Embeddable
public class SupplierArticlePK
                implements Serializable {

    private int supplierId;

    private String supplierArticleId;

}

一端的定义:

@Entity
@Table( name = "supplier_article" )
public class SupplierArticle {

    @Id
    private SupplierArticlePK supplierArticlePK;

    @Enumerated( EnumType.STRING )
    private BusinessModel businessModel;

    @OneToMany( cascade = CascadeType.ALL, orphanRemoval = true, fetch = FetchType.EAGER )
    @JoinColumns( {

                    @JoinColumn( name = "parentSupplierId", referencedColumnName = "supplierId" ),
                    @JoinColumn( name = "parentSupplierArticleId", referencedColumnName = "supplierArticleId" )
    } )
    private Set<PurchasePrice> purchasePrices = new HashSet<>();

    private int forwardingAgency;

}

多端的定义:

@Entity
@Table( name = "purchase_price" )
public class PurchasePrice {

    @ManyToOne
    @JoinColumns( {
                    @JoinColumn( name = "parentSupplierId", referencedColumnName = "supplierId" ),
                    @JoinColumn( name = "parentSupplierArticleId", referencedColumnName = "supplierArticleId" )
    } )
    public SupplierArticle supplierArticle; //unidirectional

    @Id
    @GeneratedValue
    private int id;

    @Enumerated( EnumType.STRING )
    private SalePriceType salePriceType;

    @Temporal( TemporalType.DATE )
    private Date validFromDate;

    @Temporal( TemporalType.DATE )
    private Date validToDate;

    private BigDecimal value;

    private String currency;

}

相关文章

  • OneToMany 一端复合主键做多端的外键

    一端有个复合主键,作为多端的外键,数据表如下: 代码: 复合主键的定义: 一端的定义: 多端的定义:

  • mysql(15)

    主键、外键和索引的区别? 主键,外键和索引的区别如下表: |主键|外键|索引|------|-----|----|...

  • 浅谈数据库主键外键索引

    目录 1、主键、外键、索引定义 2、为什么定义主键、外键 3、主键和外键的关系 4、数据库中主键和外键的设计原则 ...

  • 09_MySQL多表 & JDBC

    MySQL多表 外键 主表主键和从表外键 ==(从表的外键引用主表的主键)== 从表的外键类型必须和主表的主键类型...

  • Oracle11g学习笔记(一)——关系型数据库的基本理论

    能唯一标识表中不同行的属性或属性组(多个属性的组合)称为主键或复合主键 唯一键:键是由一个列组成 复合键:键是由多...

  • Sql知识

    主键外键 主键:PRIMARY KEY 外键:FOREIGN KEY 创建SQL FOREIGN KEY关于数据库...

  • MySQL数据库操作(四)——多表之间的关系

    个人博客:haichenyi.com。感谢关注 主键与外键 1、一张表可以有多个外键 2、外键是表的主键,可以是别...

  • sqlserver 2008 r2 主外键建立

    1。右键要建立的外检列字段,2.选择关系 外键表就是要建外键的表, 主键表是因为外键在另一个表上是主键。所以叫做主键表

  • html_day9 多表 获取connect两种方式

    1.外键约束从表外键的值是对主表主键的引用。从表外键类型,必须与主表主键类型一致。 语法:alert table ...

  • 数据表间关系

    一对多关系 表一建立主键、并将表二的主键作为外键 表二建立主键 一对一关系 表一建立主键、并将表二的主键作为外键,...

网友评论

      本文标题:OneToMany 一端复合主键做多端的外键

      本文链接:https://www.haomeiwen.com/subject/njtjpqtx.html