Форум программистов, компьютерный форум, киберфорум
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. Показов 1190. Ответов 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
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru