Почему значение ID не генерируется автоматически с помощью IDENTITY в базе данных Oracle?JAVA

Программисты JAVA общаются здесь
Anonymous
Почему значение ID не генерируется автоматически с помощью IDENTITY в базе данных Oracle?

Сообщение Anonymous »

База данных Oracle используется в проекте SpringBoot компании, в которой я работаю. Во время работы проекта проблем нет, но при запуске команды save() она выдает ошибку, поскольку не может сгенерировать значение ID с помощью @GeneratedValue(strategy = GenerationType.IDENTITY)< /code> аннотация.
Мы разрабатываем проект в приложении IntelliJ IDEA, я использую базу данных Oracle и получаю коды проекта с сайта BitBucket.
Проблема в том, что, хотя все одинаково, то есть Java, Maven, SpringBoot, Hibernate, OJDBC и коды, почему у моего компьютера эта проблема, а у других моих друзей этой проблемы нет.
Весенняя версия: 2.4.1
Версия Java: jdk1.8.0_202
Версия Maven: apache-maven-3.6.3
Версия Oracle: 12c
Версия Hibernate:
Изображение

Версия OJDBC: OJDBC8
Эти версии такие же, как и у моей коллеги, различий нет, но у меня на компьютере не работает аннотация @GeneratedValue(strategy = GenerationType.IDENTITY) для базы данных Oracle.
Но вместо
р>

Код: Выделить всё

@GeneratedValue(strategy = GenerationType.IDENTITY)

Код: Выделить всё

@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "ODF_SMS_NTF_SEQ")
Когда я писал

Код: Выделить всё

@SequenceGenerator(name = "ODF_SMS_NTF_SEQ", sequenceName = "ODF_SMS_NTF_SEQ", allocationSize = 1)
это работало, но в проектах моих товарищей по команде

Код: Выделить всё

@GeneratedValue(strategy = GenerationType.IDENTITY)
работает.
Нет проблем с авторизацией проекта или базы данных, поскольку SEQUENCE работает и IDENTITY не работает
Гибернация:

Код: Выделить всё

insert into odf_sms_ntf (sms_ntf_id, cdate, cuser, bsn_inter_spec_id, cust_id, data_tp_id, dealers_code, edate, is_verified, ref_code, row_id, sdate, sms_val, tel_num, try_count, user_id) values (default, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
Сообщение об ошибке:

Код: Выделить всё

2023-11-17 03:16:51.889  WARN IN0001026270162 --- [nio-8080-exec-6] o.h.e.j.s.SqlExceptionHelper             : SQL Error: 17068, SQLState: 99999
2023-11-17 03:16:51.889 ERROR IN0001026270162 --- [nio-8080-exec-6] o.h.e.j.s.SqlExceptionHelper             : Çağrıda geçersiz bağımsız değişkenler var
2023-11-17 03:16:51.891 ERROR IN0001026270162 --- [nio-8080-exec-6] o.h.AssertionFailure                     : HHH000099: an assertion failure occurred (this may indicate a bug in Hibernate, but is more likely due to unsafe use of the session): org.hibernate.AssertionFailure: null id in etiya.commerce.backend.odf.common.entity.security.OdfSmsNtfEntity entry (don't flush the Session after an exception occurs)
2023-11-17 03:16:51.904  INFO IN0001026270162 --- [nio-8080-exec-6] e.c.b.c.w.DceProfiler                    : execution-time-error: 26099 ms -`http://localhost:8080/odf/security/verification/sendSms` - etiya.commerce.backend.odf.controller.rest.security.OdfSecurityVerificationController.sendSms
2023-11-17 03:16:51.905 ERROR IN0001026270162 --- [nio-8080-exec-6] .c.b.o.c.w.OdfCustomRestExceptionHandler : error id : 1700209011905 - url: `http://localhost:8080/odf/security/verification/sendSms`
org.hibernate.AssertionFailure:  null id in etiya.commerce.backend.odf.common.entity.security.OdfSmsNtfEntity entry (don't flush the Session after an exception occurs)
at org.hibernate.event.internal.DefaultFlushEntityEventListener.checkId(DefaultFlushEntityEventListener.java:78)
at org.hibernate.event.internal.DefaultFlushEntityEventListener.getValues(DefaultFlushEntityEventListener.java:204)
at org.hibernate.event.internal.DefaultFlushEntityEventListener.onFlushEntity(DefaultFlushEntityEventListener.java:164)
at org.hibernate.event.internal.AbstractFlushingEventListener.flushEntities(AbstractFlushingEventListener.java:232)
at org.hibernate.event.internal.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:92)
at org.hibernate.event.internal.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:39)
at org.hibernate.event.service.internal.EventListenerGroupImpl.fireEventOnEachListener(EventListenerGroupImpl.java:102)
at org.hibernate.internal.SessionImpl.doFlush(SessionImpl.java:1362)
at org.hibernate.internal.SessionImpl.flush(SessionImpl.java:1349)
at org.hibernate.query.internal.NativeQueryImpl.beforeQuery(NativeQueryImpl.java:267)
at org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1591)
at org.hibernate.query.internal.AbstractProducedQuery.getSingleResult(AbstractProducedQuery.java:1641)
at org.springframework.data.jpa.repository.query.JpaQueryExecution$SingleEntityExecution.doExecute(JpaQueryExecution.java:1
Хотя мой проект и необходимые файлы, такие как Java, Maven, Ojdbc, такие же, как и у других моих товарищей по команде, аннотация @GeneratedValue(strategy = GenerationType.IDENTITY) может генерировать значение id на компьютере других моих товарищей по команде, но почему он не может сгенерировать значение id с помощью IDENTITY в моем проекте.
Я выясняю, в чем причина этого .

Подробнее здесь: https://stackoverflow.com/questions/776 ... e-database

Вернуться в «JAVA»