Изменить способ, которым hibernate просматривает связанные данные?

#java #hibernate #spring-boot #spring-data-jpa

#java #hibernate #весенняя загрузка #spring-data-jpa

Вопрос:

Допустим, у меня есть следующий «родительский» pojo…

 @Entity
@Table(name = "parent")  
public class Parent{
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @OneToMany(fetch=FetchType.LAZY, mappedBy = "parent", cascade = {CascadeType.ALL})
    @JsonIgnoreProperties("parent")
    List<Child> children;
}
  

и у меня есть следующий дочерний POJO :

 @Entity
@Table(name = "child")
public class Child{
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @ManyToOne
    @JoinColumn(name="parent_id")
    private Parent parent;
}
  

Результатом этого будет то, что у меня будет две таблицы, и мой репозиторий jpa будет выполнять запросы, используя поле parent_id в дочерней таблице.

Однако, что, если я хочу, чтобы это было похоже на поиск, где by есть третья таблица для связи, где у меня есть дочерний идентификатор и родительский идентификатор в виде строки, и это было бы отношением? могу ли я изменить мои настройки spring — jpa / hibernate для этого? Если да, то была бы признательна за некоторую помощь!

Комментарии:

1. Чего вы хотите добиться, имея третью таблицу, которую ваша текущая настройка не может обработать?

2. @roger Мне нужно иметь возможность обрабатывать этот сценарий поиска, потому что эта система заменяет старую, и я должен иметь возможность обрабатывать перенос данных из этого поиска, в ожидании подтверждения спецификации клиента, новая система также может сохранить эту структуру. Я бы предпочел использовать стандартный поиск по внешнему ключу, но, увы, это зависит не от меня. 🙁

3. Вы ищете @JoinTable .