можно ли не получить все дочерние данные с помощью JPA? используя @oneToMany @ManyToOne - PullRequest
0 голосов
/ 02 февраля 2020

У меня есть

public class Account{
    ... //this is not a db field
    @OneToMany(mappedBy = "origem")
    private  List<Transaction> transactions= new ArrayList<>();
    ...
}

и

public class Transaction{
    ...
    @ManyToOne
    private Account destination;
    ...
}

Я пытаюсь найти, чтобы получить учетную запись со всеми транзакциями, выполненными этой учетной записью, которая возвращает целевой счет и это нормально, но проблема в том, что я получаю переводы целевых учетных записей, я тоже искал решение, но не нашел ни одного или не понял. Я только начал изучать spring-data-jpa сейчас, я даже не знаю, возможно ли это.

мой ответ теперь с Find

{
  "id": 1,
  "account": 1,
  "transations": [
    {
      "id": 3
      "value": 22,
      "origem": 1,
      "destination": {
        "id": 2,
        "account"2,
        "transations": [
          {
            "id": 1,
            "value": 50,
            "origem": 2,
            "destionation": {...}
          }
        ]
      }
    }
  ]
}

, что я ищу:

{
  "id": 1,
  "account": 1,
  "transations": [
    {
      "id": 3,
      "value": 22,
      "origem": 1,
      "destination": {
        "id": 2,
        "account":2
      }
    }
  ]
}

Опять же, я не знаю, возможно ли это без @query, я просто ищу лучший способ сделать это. Спасибо

@ edit. Чтобы объяснить лучше: у меня есть учетная запись, внутри этой учетной записи у меня есть транзакции, которые являются всеми транзакциями этой учетной записи, в транзакциях у меня есть пункт назначения, который является целевым счетом. Когда я выполняю findById, я хочу получить учетную запись с транзакциями, но внутри транзакций у меня есть учетная запись назначения, и я не хочу получать транзакции целевой учетной записи

1 Ответ

0 голосов
/ 02 февраля 2020

Вы можете использовать @JsonIgnoreProperties({"hibernateLazyInitializer", "handler"}) при отображении. после этого ваш запрос не вернул дочерние данные как json. я сделал это с @ManyToOne.

...