Форум программистов, компьютерный форум, киберфорум
Java: Spring, Spring Boot
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 28.02.2017
Сообщений: 16

В Spring Boot у Entity не сериализуются id поле и сложные поля

25.07.2018, 12:53. Показов 1224. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!

Есть entity:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
@Entity
@Table(name = "item",
        catalog = "gadgetsshop"
)
public class Item implements java.io.Serializable {
 
    private Long id;
    private Company company;
    private Type type;
    private String model;
    private int price;
    private int count;
    @JsonIgnore
    private byte[] image;
    private List orders = new ArrayList();
 
    public Item() {
    }
 
    public Item(Company company, Type type, String model, int price, int count, byte[] image) {
        this.company = company;
        this.type = type;
        this.model = model;
        this.price = price;
        this.count = count;
        this.image = image;
    }
 
    public Item(Company company, Type type, String model, int price, int count, byte[] image, List orders) {
        this.company = company;
        this.type = type;
        this.model = model;
        this.price = price;
        this.count = count;
        this.image = image;
        this.orders = orders;
    }
 
    @Id
    @GeneratedValue(strategy = IDENTITY)
 
    @Column(name = "id", unique = true, nullable = false)
    public Long getId() {
        return this.id;
    }
 
    public void setId(Long id) {
        this.id = id;
    }
 
    @JsonBackReference
    @ManyToOne(fetch = FetchType.EAGER, targetEntity = Company.class)
    @JoinColumn(name = "company_id", nullable = false)
    public Company getCompany() {
        return this.company;
    }
 
    public void setCompany(Company company) {
        this.company = company;
    }
 
    @JsonBackReference
    @ManyToOne(fetch = FetchType.EAGER, targetEntity = Type.class)
    public Type getType() {
        return this.type;
    }
 
    public void setType(Type type) {
        this.type = type;
    }
 
    @Column(name = "model", nullable = false, length = 45)
    public String getModel() {
        return this.model;
    }
 
    public void setModel(String model) {
        this.model = model;
    }
 
    @Column(name = "price", nullable = false)
    public int getPrice() {
        return this.price;
    }
 
    public void setPrice(int price) {
        this.price = price;
    }
 
    @Column(name = "count", nullable = false)
    public int getCount() {
        return this.count;
    }
 
    public void setCount(int count) {
        this.count = count;
    }
 
    @Column(name = "image", nullable = false)
    public byte[] getImage() {
        return this.image;
    }
 
    public void setImage(byte[] image) {
        this.image = image;
    }
 
    @ManyToMany(fetch = FetchType.EAGER, targetEntity = Order.class)
    @JoinTable(name = "orderitem", catalog = "gadgetsshop", joinColumns = {
        @JoinColumn(name = "itemid", nullable = false, updatable = false)}, inverseJoinColumns = {
        @JoinColumn(name = "orderid", nullable = false, updatable = false)})
    public List getOrders() {
        return this.orders;
    }
 
    public void setOrders(List orders) {
        this.orders = orders;
    }
 
}


есть REST контроллер:

Java
1
2
3
4
5
6
7
8
9
10
    @RequestMapping(
            value = "/getitembymodel",
            params = {"model"},
            produces = Constant.JSON_CONTENT_TYPE
    )
    public HttpEntity getItemByModel(@RequestParam String model) {
        Item item = itemRepositoryService.getItemByModel(model);
        Resource<Item> resource = new Resource<>(item);
        return new ResponseEntity(resource, HttpStatus.OK);
    }


JSON ответ получается такой:

JavaScript
1
2
3
4
5
{
  "model" : "Samsung Galaxy J3",
  "price" : 40000,
  "count" : 2
}
т.е. сериализуются только примитивные поля.

Как сделать, чтобы сериализовались и остальные поля также?

Добавлено через 2 минуты
для id нашел такое решение:

Java
1
2
3
4
5
6
7
8
9
@Configuration
public class RepositoryConfiguration extends RepositoryRestConfigurerAdapter {
 
    @Override
    public void configureRepositoryRestConfiguration(RepositoryRestConfiguration config) {
        config.exposeIdsFor(Item.class);
    }
    
}
не знаю, как сделать с остальными полями?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.07.2018, 12:53
Ответы с готовыми решениями:

Spring Boot Entity and DTO
Добрый день, уважаемые коллеги :senor: Потратил весь день, не могу найти ни где пример, что бы использовался и @Entity и DTO. ...

Сериализация. XmlSerializer. Не сериализуются поля, значения которых пустое. т.е. null
Приведу пример класса. Он будет являться шаблонным т.к. на деле он выглядит намного больше. и это будет неэстетично запостить его сюда)). ...

Что такое Spring, Spring Boot?
Здравствуйте. Никогда не использовал Spring, Spring Boot. Возник такой вопрос можно ли его использовать в IDE для java Se. Или для...

1
958 / 577 / 136
Регистрация: 23.05.2012
Сообщений: 7,364
29.07.2018, 09:32
vladimir87999, версии библиотек не помешают.
Зачем item оборачивать в Resource? Попробуйте поменять
Java
1
2
Resource<Item> resource = new Resource<>(item);
return new ResponseEntity(resource, HttpStatus.OK);
на
Java
1
return ResponseEntity.status(HttpStatus.OK).body(item);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.07.2018, 09:32
Помогаю со студенческими работами здесь

Spring в Spring Boot context
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext( &quot;applicationContext.xml&quot; ); ...

Spring + MySQL, сложные запросы
Здравствуйте! Пытаюсь влиться в spring и во все, что с этим связано. Добрался до работы с СУБД, но дальше элементарных вещей продвинуться...

Spring Boot
Всем привет, подскажите пожалуйста, создаю проект через Spring Initializer! Создаю класс SpringBootWebApplication ...

Spring Boot
В чем может быть ошибка? При запуске приложения на браузере открывается страница с ошибкой Whitelabel Error Page Контроллер ...

Spring Boot mvc
Нужно создать веб страницу с полем для ввода сообщений и кнопкой отправки, эти сообщения должны сохраняться в ArrayList, затем выводить на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru