我有 2 個表 Employee 和 Address。每個都有 通過序列生成的主鍵empId和addressId 。
員工等級:
public class Employee {
@Id
@Column(name = "sequence_id")
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "emp_seq")
@SequenceGenerator(sequenceName = "emp_seq", allocationSize = 1, name = "emp_seq")
private Long sequenceId;
@Column(name = "emp_id")
private String empId;
@Column(name = "joiningDate")
private Date businessDate;
@OneToOne(mappedBy = "employee", cascade = CascadeType.ALL)
private Address address;
}
地址類
公共類地址{
@Id
@Column(name = "address_id")
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "address_seq")
@SequenceGenerator(sequenceName = "address_seq", allocationSize = 1, name = "address_seq")
private Long addressID;
@Column(name = "street")
private String street;
@OneToOne
@JoinColumn(name = "emp_id")
@JsonIgnore
private Employee employee;
}
我正在使用 JPARepository 來保存這兩個物體。這是我的主要課程。
Employee e = Employee.builder().businessDate(new Date())
.empId("thinkerId").build();
Address a = Address.builder().street("32nd Street")
.employee(e).build();
e.setAddress(a);
empRepository.save(e);
代碼運行成功。但在我的地址表中,emp_Id 列包含主鍵而不是 emp_id 列。
如何在地址表中獲取“thinkerId”作為值?
謝謝你。
uj5u.com熱心網友回復:
在Address物體中,您必須明確指定您所指的列:
public class Address {
@Id
@Column(name = "address_id")
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "address_seq")
@SequenceGenerator(sequenceName = "address_seq", allocationSize = 1, name = "address_seq")
private Long addressID;
@Column(name = "street")
private String street;
@OneToOne
@JoinColumn(name = "emp_id", referencedColumnName = "emp_id")
@JsonIgnore
private Employee employee;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/424556.html
