JPA新表中的多通
我有以下表格: 标签、员工、位置。 员工和地点可以有更多标签。我认为最好为这些关系创建新表:employee_标记和location_标记 如何使用JPA实现这一点?现在我知道了: 员工类别:JPA新表中的多通,jpa,Jpa,我有以下表格: 标签、员工、位置。 员工和地点可以有更多标签。我认为最好为这些关系创建新表:employee_标记和location_标记 如何使用JPA实现这一点?现在我知道了: 员工类别: @OneToMany() @JoinTable(name="employee_tag", joinColumns={ @JoinColumn(name="ID_employee", referencedColumnName="ID") }, inverseJoinColumns={ @Jo
@OneToMany()
@JoinTable(name="employee_tag", joinColumns={
@JoinColumn(name="ID_employee", referencedColumnName="ID")
}, inverseJoinColumns={
@JoinColumn(name="ID_tag", referencedColumnName="ID")
})
private Collection<Tag> tags;
它创建了一个名为employee_tag的新表,但tag仍有一个列employee_ID。如何将标记链接到此表?如果需要单向一对多关联,则不必将employee关联放入tag类中,而必须在employee类中声明关联
@Entity
public class Employee {
@OneToMany()
@JoinTable(name="employee_tag", joinColumns={
@JoinColumn(name="ID_employee", referencedColumnName="ID")
}, inverseJoinColumns={
@JoinColumn(name="ID_tag", referencedColumnName="ID")
})
public Collection<Tag> tags;
...
}
@Entity
public class Tag {
...
}
@实体
公营雇员{
@OneToMany()
@JoinTable(name=“employee\u tag”,JointColumns={
@JoinColumn(name=“ID\u employee”,referencedColumnName=“ID”)
},反向连接列={
@JoinColumn(name=“ID\u标记”,referencedColumnName=“ID”)
})
公众收集标签;
...
}
@实体
公共类标记{
...
}
否则,您可以按如下方式进行双向关联:
@Entity
public class Employee {
@OneToMany(mappedBy="troop")
public Collection<Tag> tags;
...
}
@Entity
public class Tag {
@ManyToOne
@JoinColumn(name="employee_fk")
public Employee employee;
...
}
@实体
公营雇员{
@OneToMany(mappedBy=“部队”)
公众收集标签;
...
}
@实体
公共类标签{
@许多酮
@JoinColumn(name=“employee\u fk”)
公共雇员;
...
}
看看See Oke nice,我想要的几乎是默认值。但是标记表中仍然有一个雇员ID。
@Entity
public class Employee {
@OneToMany(mappedBy="troop")
public Collection<Tag> tags;
...
}
@Entity
public class Tag {
@ManyToOne
@JoinColumn(name="employee_fk")
public Employee employee;
...
}