Java 如何配置一对一/@OneToOne关联以在两个表中自动插入外键
我有两个实体,分别由一对一关联SalesEntry(父项)和Receipt(子项)映射。保存SalesEntry对象时,在SalesEntry中插入外键,但在收据中未插入外键 SalesEntry.javaJava 如何配置一对一/@OneToOne关联以在两个表中自动插入外键,java,hibernate,jpa,hibernate-mapping,Java,Hibernate,Jpa,Hibernate Mapping,我有两个实体,分别由一对一关联SalesEntry(父项)和Receipt(子项)映射。保存SalesEntry对象时,在SalesEntry中插入外键,但在收据中未插入外键 SalesEntry.java @Entity @Table(name = "SALES_ENTRY") public class SalesEntry { public SalesEntry() { } @Id @GeneratedValue(strategy = Gene
@Entity
@Table(name = "SALES_ENTRY")
public class SalesEntry {
public SalesEntry() {
}
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "SALES_ENTRY_ID")
private long salesEntryId;
@Column(name = "TOTAL_AMOUNT")
private double totalAmount;
@ManyToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "RECEIPT_ID", unique = true, nullable = true)
private Receipt receipt;
...
}
@Entity
@Table(name = "RECEIPT")
public class Receipt {
public Receipt() {
// empty constructor
}
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "RECEIPT_ID")
private long receiptId;
@Column(name = "RECEIPT_NO", unique = true)
private String receiptNo;
@OneToOne
@JoinColumn(name = "SALES_ENTRY_ID")
private SalesEntry salesEntry;
...
}
Receipt.java
@Entity
@Table(name = "SALES_ENTRY")
public class SalesEntry {
public SalesEntry() {
}
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "SALES_ENTRY_ID")
private long salesEntryId;
@Column(name = "TOTAL_AMOUNT")
private double totalAmount;
@ManyToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "RECEIPT_ID", unique = true, nullable = true)
private Receipt receipt;
...
}
@Entity
@Table(name = "RECEIPT")
public class Receipt {
public Receipt() {
// empty constructor
}
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "RECEIPT_ID")
private long receiptId;
@Column(name = "RECEIPT_NO", unique = true)
private String receiptNo;
@OneToOne
@JoinColumn(name = "SALES_ENTRY_ID")
private SalesEntry salesEntry;
...
}
使用收据保存SalesEntry对象时,保存收据对象,但不会插入(SALES\u ENTRY\u ID)收据表中的外键
我的配置有错误吗?我想做什么?如我所料工作。我认为你应该只使用一个按钮。从SalesEntry.java中删除多个OneOne,并在Receive属性上方的SalesEntry.java中使用OneOne。如果你需要清楚的例子,去你可以找到所有的例子一个快速的谷歌搜索给了我这个:现在不能测试出来,但它似乎涵盖了,你想要实现什么。