Как не сериализовать поле @Id в Spring Boot @RestController? - PullRequest
0 голосов
/ 18 апреля 2020

У меня есть класс сущностей с полем Long id. По умолчанию это поле сериализуется в ответ с помощью контроллера отдыха Spring Boot.

Я использую Spring Data JPA

Я не хочу сериализовать это поле в свой ответ. Я пытался использовать @Transient, но это не сработает. Я могу создать объект DTO, но просто хотел проверить, есть ли лучший способ добиться такого поведения?

Ответы [ 2 ]

2 голосов
/ 18 апреля 2020

Вы должны избегать возврата сущностей в ответах контроллера. Он не подходит для проецирования, создайте связь между вашим слоем доступа с видом один и потенциальным побочным эффектом, таким как ленивая загрузка, вызванная некоторыми анти-шаблонами, такими как open session in view. Но ... если это все еще не проблема, просто добавьте @jsonIgnore в поле id.

1 голос
/ 18 апреля 2020

Не используйте Enity в своем ответе. Используйте другой класс DTO с полями, которые вы хотите использовать. И отобразить все данные из сущности в класс DTO.

...