Получить родственных детей по имуществу в спящем режиме? - PullRequest
0 голосов
/ 15 марта 2019

У меня есть этот класс 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 скорее всего тупой, но это устаревший код, с которым я работаю, и кто-то спроектировал это так. Я не могу это изменить.

  • Я абсолютно ЗНАЮ, что у меня есть связанные данные в БД. Я ввел его вручную, и простой оператор выбора с объединением действительно покажет его.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...