У меня есть два класса сущностей.от одного до многих двунаправленных сопоставлений, не имеющих ошибки по умолчанию
@Entity
общественного класса Employee {
@Id
@Column(name = "employee_id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private String name;
@OneToMany(cascade = CascadeType.ALL)
@JoinTable(name = "employee_skill", joinColumns = @JoinColumn(referencedColumnName = "employee_id"), inverseJoinColumns = @JoinColumn(referencedColumnName = "skill_id"))
private Collection<Skill> listSkill;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Collection<Skill> getListSkill() {
return listSkill;
}
public void setListSkill(Skill skill) {
if (listSkill == null) {
listSkill = new ArrayList<Skill>();
}
listSkill.add(skill);
}
}
@Entity
общественного класса Skill {
@Id
@Column(name = "skill_id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private String name;
@ManyToOne(cascade = CascadeType.ALL)
@JoinTable(name = "employee_skill", joinColumns = @JoinColumn(referencedColumnName = "skill_id", insertable = false, updatable = false), inverseJoinColumns = @JoinColumn(referencedColumnName = "employee_id", insertable = false, updatable = false))
private Employee employee;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Employee getEmployee() {
return employee;
}
public void setEmployee(Employee employee) {
this.employee = employee;
}
}
Если оба они были UNI-Directional, я могу сэкономить сотруднику-объекту-специалисту.
сейчас, когда я попытался сделать это BI-Directional, я получаю сообщение об ошибке SQL, говоря, что Field 'skill_id' doesn't have a default value
Я понятия не имею, где я сделал это неправильно. Не могли бы вы указать.
не должен аннотации быть @ManyToMany? –
@ Sõber Это зависит от того, может ли скилл использоваться несколькими сотрудниками или нет. ОП определил его как OneToMany, поэтому я думаю, это то, что он/она хочет. –
@ Sõber Благодарим вас за ввод. Да, в моих требованиях он должен иметь возможность искать Работника по навыкам. Итак, я думаю, что ваша идея имеет больше смысла, чем моя. +1 – yas