我正在使用Hibernate/JPA,有3个表:
Contact
pk contact_id
fk member_id
Employee
pk employee_id
fk member_id
Members
pk member_id
我有:
@Entity(name = "Contact" )
public class Contact implements Serializable {
@Id
@SequenceGenerator(allocationSize = 1, name = "contact_sequence", sequenceName = "contact_ids")
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "contact_sequence")
private java.lang.Long contact_id;
@OneToOne(cascade = CascadeType.ALL, targetEntity = Members.class)
@JoinColumn(name = "member_id")
private Members member;
@OneToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "member", referencedColumnName = "member")
private Employee employee;
和
@Entity(name = "Employee")
public class Employee implements Serializable {
@Id
@SequenceGenerator(allocationSize = 1, name = "employee_sequence", sequenceName = "employee_ids")
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "employee_sequence")
private java.lang.Long employee_id;
和
@Entity(name = "Members")
@Table(name = "Members")
public class Members implements Serializable {
@Id
@SequenceGenerator(allocationSize = 1, name = "members_sequence", sequenceName = "member_ids")
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "members_sequence")
private java.lang.Long member_id;
我的问题与Contact
实体private Employee employee;
有关。当我启动我的 Jboss 服务器时:
StartException in service jboss.persistenceunit.
问题
如何在Contact
实体上注释private Employee employee;
?
谢谢
你几乎正确地定义了private Members member;
,那么有没有理由不对private Employee employee;
做同样的事情?
喜欢:
@OneToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "employee", referencedColumnName = "employee_id")
private Employee employee;
也是一个简单的链接,只是为了交叉检查整体@JoinColumn
功能
===编辑===
看起来确实存在数据结构问题,因为从一开始,关系就是ManyToOne,
如果您可以尝试以下示例:
//Employee
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "contact_id", referencedColumnName = "contact_id")
private Contact contact;
//Contact
@OneToMany(fetch = FetchType.LAZY, mappedBy = "employee_id")
private List<Employee> employees = new ArrayList<>();
然后通过选择contact.getEmployees()
应该可以解决问题