Java 使用表键将一个映射到多个
我有主表商户和第二表交易:Java 使用表键将一个映射到多个,java,hibernate,jpa,spring-data-jpa,Java,Hibernate,Jpa,Spring Data Jpa,我有主表商户和第二表交易: @Entity @Table public class PaymentTransactions { @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name = "id", updatable = false, nullable = false) private int id; @Column(length = 4) private int re
@Entity
@Table
public class PaymentTransactions {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id", updatable = false, nullable = false)
private int id;
@Column(length = 4)
private int reference_transaction_id;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "merchant_id")
private Merchants merchants;
商户:
@Entity
@Table
public class Merchants {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id")
private int id;
@Column(length = 255)
private String name;
交易:
@Entity
@Table
public class PaymentTransactions {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id", updatable = false, nullable = false)
private int id;
@Column(length = 4)
private int reference_transaction_id;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "merchant_id")
private Merchants merchants;
如何将商户id(表键)配置为表交易的参考键,作为表列
商户id
?我怀疑您是否应该在@JoinColumn注释中使用referencedColumnName属性,并将PaymentTransactions更改为List:
@Entity
@Table
public class Merchants {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private int id;
@Column(length = 255)
private String name;
@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL, orphanRemoval = true, mappedBy = "merchant")
List<PaymentTransactions> transactions;
}
@Entity
@Table
public class PaymentTransactions {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id", updatable = false, nullable = false)
private int id;
@Column(length = 4)
private int reference_transaction_id;
@ManyToOne
// here referencedColumnName is id column of merchant entity
@JoinColumn(name = "merchant_id", referencedColumnName = "id", insertable = false, updatable = false)
private Merchants merchant;
}
@实体
@桌子
公营商人{
@身份证
@GeneratedValue(策略=GenerationType.IDENTITY)
@列(name=“id”)
私有int-id;
@列(长度=255)
私有字符串名称;
@OneToMany(fetch=FetchType.LAZY,cascade=CascadeType.ALL,orphanRemoving=true,mappedBy=“merchant”)
列出交易记录;
}
@实体
@桌子
公共类支付交易{
@身份证
@GeneratedValue(策略=GenerationType.IDENTITY)
@列(name=“id”,updateable=false,nullable=false)
私有int-id;
@列(长度=4)
私有int引用\事务\ id;
@许多酮
//此处referencedColumnName是商户实体的id列
@JoinColumn(name=“merchant\u id”,referencedColumnName=“id”,insertable=false,updateable=false)
私人商人;
}