你最好使用AbstractPersistable生成ID:
所以地址和地址类型将有一个primary_key也
1 - 员工
@Entity
@Table(name = "Employee ")
public class Employee extends AbstractPersistable<Long>{
// Employee here have a generated id from AbstractPersistable
private static final long serialVersionUID = 1L;
@Column(name = "emp_Name ")
private String emp_Name ;
@ManyToOne(optional = true)
@JoinColumn(name = "emp_Address")
private Address emp_Address;
}
2-地址
@Entity
@Table(name = "Address")
public class Address extends AbstractPersistable<Long>{
//Address here have a generated id from AbstractPersistable
private static final long serialVersionUID = 1L;
//you can delete this column because you have already the ManyToOne in Employee
@ManyToOne(optional = true)
@JoinColumn(name = "emp_id")
private Employee emp_id;
//*****************
@Column(name = "addres_type")
private String addres_type;
@ManyToOne(optional = true)
@JoinColumn(name = "Type_id")
private AddressType Type_id ;
}
3地址类型
@Entity
@Table(name = "AddressType")
public class AddressType extends AbstractPersistable<Long>{
//AddressType here have a generated id from AbstractPersistable
private static final long serialVersionUID = 1L;
@Column(name = "Type")
private String Type;
@Column(name = "Desc")
private String Desc;
}
在POJO
你会在地址类雇员,而不是EMP_ID,同为地址类型。但我认为这需要外键成为加入表的PK,就像员工和地址 – XtremeBaumer
您使用哪种IDE?大多数IDE提供了从数据库表中生成实体类的功能,您的表关系应该在数据库级别定义,并且它应该是准确的,以便查看所需的结果或输出。 – user75ponic
你的表没有任何意义。我会先解决。 –