Форум программистов, компьютерный форум, киберфорум
Java EE (J2EE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
 Аватар для vallball
6 / 5 / 1
Регистрация: 02.05.2017
Сообщений: 42

Проблема с сохранением сущности с аннотацией @MapsId

18.03.2020, 11:40. Показов 746. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Spring, REST, Data JPA
Есть две сущности.
Основная:
Java
1
2
3
4
5
6
7
8
9
10
@SuppressWarnings("serial")
@Entity
@Table(name = "users")
public class User implements UserDetails {
    
    private static final Logger logger = LoggerFactory.getLogger(User.class);
 
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
дочерняя:
Java
1
2
3
4
5
6
7
8
9
10
11
@Entity
@Table(name = "cards")
public class ReaderCard {
 
    @Id
    private Long id;
 
    @OneToOne(fetch = FetchType.EAGER)
    @MapsId
    @JoinColumn(name = "id")
    private User user;
При попытке сохранить сущность card:
JSON
1
2
3
4
5
  {
        "user": {
            "id": 4
        }
    }
выдаётся ошибка: IdentifierValue - ID unsaved-value: null
Смысл в том, что контроллер не может из json получить id, судя по всему при таком запросе. Как можно это обойти?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.03.2020, 11:40
Ответы с готовыми решениями:

Как правильно отобразить на экране сущности и добавление полей к сущности
Есть примеры привязки бд с не тепезированным набором данных Как правильно отобразить на экране сущности и добавление полей к сущности

Проблема с сохранением в bitmap
Доброе время суток! :) Загвоздка вот в чем: Как обычно сохраняю изображение из Image1 в bmp с помощью SavePictureDialog1,...

Проблема с сохранением фотографий
Здравствуйте.возникла проблема,которая мешает нам работать в windows 10.Я занимаюсь редактированием множества фотографий для сайта... ...

3
226 / 184 / 80
Регистрация: 13.04.2014
Сообщений: 694
18.03.2020, 17:05
Попробуй в ReaderCard у поля id добавить @GeneratedValue(strategy = GenerationType.IDENTITY)
0
 Аватар для vallball
6 / 5 / 1
Регистрация: 02.05.2017
Сообщений: 42
19.03.2020, 08:57  [ТС]
К сожалению, не помогло. Кроме того, в этом примере https://vladmihalcea.com/the-b... hibernate/ не используется @GeneratedValue(strategy = GenerationType.IDENTITY).
0
 Аватар для vallball
6 / 5 / 1
Регистрация: 02.05.2017
Сообщений: 42
20.03.2020, 10:28  [ТС]
В слой сервиса у связанного с readerCard card'а есть id:
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
20.03.2020 13:37:20 [http-nio-8080-exec-5] INFO  r.v.b.s.ReaderCardServiceImpl -
                ReaderCard [id=null, user=User [id=4, login=null, firstName=null, lastName=null, role=null, dateOfBirth=null], books={}]
20.03.2020 13:37:20 [http-nio-8080-exec-5] TRACE o.s.t.s.TransactionSynchronizationManager -
                Bound value [org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$DefaultCrudMethodMetadata@718e6c29] for key [public abstract java.lang.Object org.springframework.data.repository.CrudRepository.save(java.lang.Object)] to thread [http-nio-8080-exec-5]
20.03.2020 13:37:20 [http-nio-8080-exec-5] DEBUG o.s.d.r.c.s.TransactionalRepositoryProxyPostProcessor$CustomAnnotationTransactionAttributeSource -
                Adding transactional method 'save' with attribute: PROPAGATION_REQUIRED,ISOLATION_DEFAULT
20.03.2020 13:37:20 [http-nio-8080-exec-5] TRACE o.s.b.f.s.DefaultListableBeanFactory -
                Returning cached instance of singleton bean 'transactionManager'
20.03.2020 13:37:20 [http-nio-8080-exec-5] TRACE o.s.t.s.TransactionSynchronizationManager -
                Retrieved value [org.springframework.orm.jpa.EntityManagerHolder@7d303b15] for key [org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean@2f405c13] bound to thread [http-nio-8080-exec-5]
20.03.2020 13:37:20 [http-nio-8080-exec-5] DEBUG o.s.o.j.JpaTransactionManager -
                Found thread-bound EntityManager [SessionImpl(258586481PersistenceContext[entityKeys=[], collectionKeys=[]];ActionQueue[insertions=ExecutableList{size=0} updates=ExecutableList{size=0} deletions=ExecutableList{size=0} orphanRemovals=ExecutableList{size=0} collectionCreations=ExecutableList{size=0} collectionRemovals=ExecutableList{size=0} collectionUpdates=ExecutableList{size=0} collectionQueuedOps=ExecutableList{size=0} unresolvedInsertDependencies=null])] for JPA transaction
20.03.2020 13:37:20 [http-nio-8080-exec-5] TRACE o.s.t.s.TransactionSynchronizationManager -
                Retrieved value [org.springframework.jdbc.datasource.ConnectionHolder@467888d4] for key [HikariDataSource (HikariPool-1)] bound to thread [http-nio-8080-exec-5]
20.03.2020 13:37:20 [http-nio-8080-exec-5] DEBUG o.s.o.j.JpaTransactionManager -
                Participating in existing transaction
20.03.2020 13:37:20 [http-nio-8080-exec-5] TRACE o.s.t.i.TransactionInterceptor -
                Getting transaction for [org.springframework.data.jpa.repository.support.SimpleJpaRepository.save]
20.03.2020 13:37:20 [http-nio-8080-exec-5] TRACE o.s.b.CachedIntrospectionResults -
                Getting BeanInfo for class [ru.vallball.biblio01.model.ReaderCard]
20.03.2020 13:37:20 [http-nio-8080-exec-5] TRACE o.s.b.CachedIntrospectionResults -
                Caching PropertyDescriptors for class [ru.vallball.biblio01.model.ReaderCard]
20.03.2020 13:37:20 [http-nio-8080-exec-5] TRACE o.s.b.CachedIntrospectionResults -
                Found bean property 'books' of type [java.util.Map]
20.03.2020 13:37:20 [http-nio-8080-exec-5] TRACE o.s.b.CachedIntrospectionResults -
                Found bean property 'class' of type [java.lang.Class]
20.03.2020 13:37:20 [http-nio-8080-exec-5] TRACE o.s.b.CachedIntrospectionResults -
                Found bean property 'id' of type [java.lang.Long]
20.03.2020 13:37:20 [http-nio-8080-exec-5] TRACE o.s.b.CachedIntrospectionResults -
                Found bean property 'user' of type [ru.vallball.biblio01.model.User]
20.03.2020 13:37:20 [http-nio-8080-exec-5] TRACE o.s.t.s.TransactionSynchronizationManager -
                Retrieved value [org.springframework.orm.jpa.EntityManagerHolder@7d303b15] for key [org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean@2f405c13] bound to thread [http-nio-8080-exec-5]
20.03.2020 13:37:20 [http-nio-8080-exec-5] TRACE o.h.e.i.EntityState -
                Transient instance of: ru.vallball.biblio01.model.ReaderCard
20.03.2020 13:37:20 [http-nio-8080-exec-5] TRACE o.h.e.i.DefaultPersistEventListener -
                Saving transient instance
20.03.2020 13:37:20 [http-nio-8080-exec-5] TRACE o.h.e.s.IdentifierValue -
                ID unsaved-value: null
20.03.2020 13:37:20 [http-nio-8080-exec-5] DEBUG o.h.e.i.AbstractSaveEventListener -
                Generated identifier: 4, using strategy: org.hibernate.id.ForeignGenerator
20.03.2020 13:37:20 [http-nio-8080-exec-5] TRACE o.h.e.i.AbstractSaveEventListener -
                Saving [ru.vallball.biblio01.model.ReaderCard#4]
20.03.2020 13:37:20 [http-nio-8080-exec-5] TRACE o.h.e.i.Cascade -
                Processing cascade ACTION_PERSIST for: ru.vallball.biblio01.model.ReaderCard
20.03.2020 13:37:20 [http-nio-8080-exec-5] TRACE o.h.e.s.CascadingAction -
                Cascading to persist: ru.vallball.biblio01.model.User
20.03.2020 13:37:20 [http-nio-8080-exec-5] TRACE o.h.e.s.IdentifierValue -
                ID unsaved-value: null
20.03.2020 13:37:20 [http-nio-8080-exec-5] TRACE o.h.e.i.EntityState -
                Detached instance of: ru.vallball.biblio01.model.User
20.03.2020 13:37:20 [http-nio-8080-exec-5] DEBUG o.h.r.t.b.j.i.JdbcResourceLocalTransactionCoordinatorImpl -
                JDBC transaction marked for rollback-only (exception provided for stack trace)
Добавлено через 46 минут
Решил проблему
Java
1
2
3
4
5
6
    @Override
    public void save(ReaderCard readerCard) {
        User user = userService.findUserById(readerCard.getUser().getId());
        readerCard.setUser(user);
        readerCardRepository.save(readerCard);
    }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.03.2020, 10:28
Помогаю со студенческими работами здесь

Проблема с сохранением в jpg
Проблема такова: у меня в PictureBoxе есть рисунок jpg. Пишу 'SavePicture Picture1.Picture, 'C:Pict.jpg' Рисунок сохраняется, но его...

Проблема с сохранением файла
Здравствуйте вот я решил замутить что то типо блокнота так для самоучения и у меня проблема. Если я нажимаю новый фаил и потом сохраняю...

Проблема с сохранением и редактированием данных
Здравствуйте. Не получается сохранить введенные данные о новом пользователе, ни каких ошибок вроде как нет new_user.php <?php...

Проблема с сохранением Wordовского файла
Народ помогите плз. такая проблема, макрос вносит изменения в Wordовский документ и потом пытаюсь его сохранить ActiveDocument.Save но...

Проблема с сохранением данных в таблице
Не сохраняются данные в таблице, использую QTableView и QSqlTableModel #include "mainwindow.h" MainWindow::MainWindow(QWidget...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
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
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru