Я работаю над проектом api rest с весенней загрузкой и гибернацией, и мне интересно узнать о сериализации json RestController с использованием Jackson.
Вот проблема: я использую класс внешних сущностей гибернации, определенный вбиблиотека, которую я не могу редактировать.Эти классы очень сложны и определяют много полей, которые меня не интересуют, когда я возвращаю объект с остальными API.
На самом деле, я решил проблему с обёртыванием исходного класса классом-оберткой, который предоставляеттолько значения, которые я хочу вернуть из контроллера.
Например:
оригинальный класс
class AccountEntity {
///...
public String getName() {
return this.name;
}
/// ... Lot of code here
}
Класс оболочки:
class AccountWrapper {
AccountEntity original;
public AccountWrapper(AccountEntity original) {
this.original = original;
}
public String getName() {
return this.original.getName();
}
}
и использование оболочки следующим образом
@RestController("/api/user")
public class UsersController {
@GetMapping("/")
public AccountWrapper getUser() {
AccountEntity account = //get account in some way
AccountWrapper accountWrapper = new AccountWrapper(account);
return accountWrapper;
}
}
Метод работает хорошо, но он не очень чистый и делает вещи более сложными (например, когда мне нужно возвращать списки), потому что я всегда должен оборачивать исходный класс.
Я не нашел метода, который позволил бы мне указать, какие поля я хочу сериализовать без изменения (и не могу) исходного класса.
Любая помощь?