Spring Data JPA Multi-FK Присоединиться - PullRequest
0 голосов
/ 02 октября 2018

У меня проблема с запросом данных из цепочки из 3 таблиц через инфраструктуру сущностей JPA в приложении Spring Boot v1.5.3.Модели определены следующим образом:

ValidationField {  
  @Id id,  
  name,  

@OneToMany(
        orphanRemoval = true,
        fetch = FetchType.EAGER,
        cascade = CascadeType.ALL,
        mappedBy = "validationMessage")  
  Set<ValidationFieldMessage> messages
}


ValidationFieldMessage {  
  @Id id,  

  @ManyToOne(fetch = FetchType.LAZY)
  ValidationField validationField

  @ManyToOne(fetch = FetchType.EAGER)
  @JoinColumn(name = "validation_message_id")
  ValidationMessage validationMessage;
}

ValidationMessage {  
  @Id id,  
  text
}

Метод хранилища данных Spring определен следующим образом:

List<ValidationField> findByName(String name);

Пример данных:

Validation_Field
id | name
0 first_name

Validation_Field_Message
id | validation_message_id | validation_field_id
0 0 0
1 1 0
2 2 0

Validation_Message
id | text
0 "Не должно быть пробелов"
1 "Специальные символы не допускаются" *

Однако результат выполнения дает следующее:

field {
id: 0,
name: first_name,
messages: {
[
id: 0,
validationMessage: [
id: 1,
текст: «Специальные символы не допускаются»
], [
id: 1,
текст: «Специальные символы не допускаются»
]
]
}
}

Сообщения дублируются, а не отображаются по отдельности.Я пытался с @Query также использовать объединения, но безуспешно.

Есть ли что-то, чего мне не хватает в определении модели?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...