У меня есть этот класс Java, который является родителем:
@Getter @Setter @NoArgsConstructor
@Entity
@Table(name="parent")
public class Parent{
@Id
@Column(name="ID", nullable=false)
private int Id;
@Column(name="PARENT_ID")
private String parentID;
@Column(name="FIRST_NME")
private String firstName;
@Column(name="LAST_NME")
private String lastName;
/* This is the relationship I am trying to establish! */
@OneToMany(fetch=FetchType.EAGER, mappedBy = "parent", cascade = {CascadeType.ALL})
List<Child> children;
}
Вот мой класс ребенка:
@Getter @Setter @NoArgsConstructor
@Entity
@Table(name="child")
public class Child {
@EmbeddedId
private CompositeKeyChild id;
@Column(name="CHILD_NAME")
private String insertUser;
@ManyToOne
@JoinColumn(name="PARENT_ID", insertable = false, updatable = false)
private Parent parent;
}
Вот тот составной класс Key, который был обозначен в коде выше:
@Embeddable
public class CompositeKeyChild implements Serializable {
@Column(name = "PARENT_ID")
private String parentID;
@Column(name = "CHILD_CD")
private String childCD;
public CompositeKeyChild() {
}
public CompositeKeyChild(String parentID, String childCD) {
this.parentID = parentID;
this.childCD = childCD;
}
public String getParentID() {
return ParentID;
}
public String getChildCD() {
return childCD;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof CompositeKeyChild)) return false;
CompositeKeyChild that = (CompositeKeyChild) o;
return Objects.equals(getParentID(), that.getParentID()) &&
Objects.equals(getChildCD(), that.getChildCD());
}
@Override
public int hashCode() {
return Objects.hash(getParentID(), getChildCD());
}
}
Что я пытаюсь сделать:
Когда я использую свой простой репозиторий JPA для выполнения findAll()
, я бы хотел иметь возможность вернуть всех родителей со всеми детьми внутри них.
Что сейчас происходит:
У меня родители без детей.
Вещи, достойные внимания:
У дочерней таблицы есть составной ключ, поэтому я обработал это так,
однако - может быть, мне нужно что-то еще сделать, чтобы получить
отображение для работы с идентификаторами таким образом?
Я понимаю, что наличие поля идентификатора и столбца PARENT_ID
скорее всего тупой, но это устаревший код, с которым я работаю, и кто-то
спроектировал это так. Я не могу это изменить.
- Я абсолютно ЗНАЮ, что у меня есть связанные данные в БД. Я ввел его вручную, и простой оператор выбора с объединением действительно покажет его.