Как генерируются значения JSON для запросов при загрузке Spring? - PullRequest
0 голосов
/ 10 июля 2019

В классе Entity, если у меня есть функция, начинающаяся с get (), которая возвращает постоянное значение, она включается в ответ JSON, даже если такая переменная-член не объявлена.Static функции не отображаются в сгенерированном json.

Я не знаю, что искать.

Я хочу знать, почему это так и каков основной механизм для этого.

@JsonInclude(JsonInclude.Include.NON_NULL)
@Entity
public class AssignedBook {

  @Id
  @GeneratedValue( strategy = GenerationType.AUTO )
  private Integer id;
  @OneToOne
  private Book book;
  @OneToOne
  private Users user;

  public static Integer getSomeId() {
    return 8;
  }
  public Integer someAwesomeId() {
    return 8;
  }
}

Мой код для repository:

@Query(value="select new AssignedBook(id, book) from AssignedBook ab where ab.user.id=:userId")
  public List<AssignedBook> findByIdAndBookId(Integer userId);

Дляid=15 и некоторое значение book это вернет json

[
    {
        "id": 15,
        "book": {
            "id": 6,
            "name": "Rage of Angels",
            "author": "Sidney Sheldon"
        },
        "someAwesomeId": 8
    }
]

1 Ответ

0 голосов
/ 10 июля 2019

Спасибо x80486 за направление.

Spring boot использует Jackson, который использует отражение для соответствия getXXX и отображает его.

Лучшее объяснение может бытьнайдено здесь

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