У меня есть две сущности, скажемJPA OneToMany вставка не устанавливая идентификаторами правильно
Person.java:
@Entity
public class Person implements Serializable {
@Id
@GeneratedValue(strategy = AUTO)
private long id;
@OneToMany(mappedBy = "personData", cascade = CascadeType.PERSIST)
private List<SkillsData> skillsData;
...
}
SkillsData.java
@Entity
@Table(name = "SkillsData")
public class SkillsData implements Serializable {
@Id
@GeneratedValue(strategy = AUTO)
private long id;
@JoinColumn(name = "PERSONID")
@ManyToOne(cascade = REMOVE)
private Person personData;
...
}
Когда я создаю человека, добавьте список типа SkillsData в его поле skillsData и сохраняйте его, все работает без каких-либо исключений, но когда я просматриваю базу данных непосредственно в таблице SkillsData, поле PERSONID не заполняется, а beca использование того, что добавленные навыки не могут быть привязаны к правильному человеку. Я пытаюсь исправить эту проблему в течение некоторого времени, и я буду благодарен за любую помощь.
Это поможет, если вы упомянули используемую СУБД и как выглядит оператор создания таблицы. – Gimby
Это может быть опечатка, или, может быть, я просто очень ржавый на Entities, но ваша '@ JoinColumn' является« PERSONID », но похоже, что ваше имя столбца просто« id »в таблице« person » – CodeChimp
@CodeChimp: Вы неправильно понимаете JoinColumn, он представляет столбец (внешний ключ) в SkillsData с именем PERSONID. – Gimby