Форум программистов, компьютерный форум, киберфорум
Java: Spring, Spring Boot
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
52 / 18 / 11
Регистрация: 27.03.2013
Сообщений: 789

Oracle + spring-data + hibernate - создание записи и автоматическая генерация id

25.09.2019, 16:02. Показов 2829. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно создать запись в таблице, но проблема в том, что таблица не имеет sequence , и в базе не хранятся счетчики созданных id в отдельной таблице.

Поэтому я не могу применить

Java
1
strategy = GenerationType.SEQUENCE
или

Java
1
strategy = GenerationType.TABLE
Я должен при создании записи, нарастить на 1, для получения последней записи из таблицы и при этом еще одно поле, должно при создании записи, заполняться системной датой из текущей базы. Для установки системной даты, есть встроенная переменная sysdate.

Писать запрос который будет включать все поля (используя параметр native ) - такой вариант не подходит, так как полей много, нужно передавать сущность.




Как это можно сделать с помощью только hibernate или spring data. Если используется spring data, то как это описать ?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.09.2019, 16:02
Ответы с готовыми решениями:

Spring Data Hibernate mapping entity without xml
Здравствуйте! Подскажите пожалуйста, как настроить маппинг сущности без использование xml. Тут пишут, что если я навесил @Enity...

Не получается связать Apache Ignite + Spring Data + Hibernate
Хочу сделать следующую вещь: Загрузить данные из бд, используя spring-data и hibernate, в кэш и дальше работать с ним с помощью ignit'а....

Подключение Oracle+maven+spring+Hibernate+jsp
Всем доброго времени суток, друзья помогите разобраться пожалуйста в web-разработке я новичок, и есть много не понятных моментов, которые я...

7
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
25.09.2019, 16:22
IDENTITY поставь
0
52 / 18 / 11
Регистрация: 27.03.2013
Сообщений: 789
26.09.2019, 10:00  [ТС]
Цитата Сообщение от xoraxax Посмотреть сообщение
IDENTITY поставь
oracle не поддерживает данный тип генерации

does not support identity key generation
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
26.09.2019, 10:15
Цитата Сообщение от masli Посмотреть сообщение
oracle не поддерживает данный тип генерации
ну создай тогда новый сиквенс - в чем проблема

Добавлено через 1 минуту
ну либо свой генератор пиши
0
52 / 18 / 11
Регистрация: 27.03.2013
Сообщений: 789
26.09.2019, 14:28  [ТС]
Цитата Сообщение от xoraxax Посмотреть сообщение
ну создай тогда новый сиквенс - в чем проблема
я не имею права на редактирования таблиц
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
26.09.2019, 14:36
тебе и не надо таблицы редактировать, тебе надо сиквенс создать
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
26.09.2019, 21:53
Цитата Сообщение от masli Посмотреть сообщение
я не имею права на редактирования таблиц
а как в эти таблицы до тебя данные попадали? Там же как-то генерился айди?
0
52 / 18 / 11
Регистрация: 27.03.2013
Сообщений: 789
27.09.2019, 21:17  [ТС]
Цитата Сообщение от KEKCoGEN Посмотреть сообщение
а как в эти таблицы до тебя данные попадали? Там же как-то генерился айди?
таблицы создаются другой командой ( которая разрабатывает базы), и я не имею к этому отношения, и таблица которую я заполняю была вообще пустой.

Я попросил сделать триггер и он будет автоматически при вставке генерировать id, только я не буду знать какой id будет у записи.

Ну а пока я понял, что нет никаких способов со стороны java работать с oracle через стратегию IDENTITY.

1. Либо таблица должна иметь генератор в Sequence, либо генератор id должен быть описан в триггере для конкретной таблицы.
2. Если используется sequence, триггер должен быть убран, но при использовании sequence я получаю Id , который сгененировал Sequence и после вставки записи, могу по этому id звапросить только что добавленную сущность; для этого переопредлить нужно метод save() расширив интерфейс CrudRepository();
Также в этом случае аннотация @GeneratedValue должна быть указана, хоть она и бесполезна (она лишь указывает что значение генерируется на стороне базы, но если база не имеет ни триггера, ни Sequnece, эта аннотация не поможет). Если ее не будет, тогда будет выброшен Exception.

3. Как получить обратно запись, если она была записана с id, который генерируется на стороне базы триггером, я не знаю, если кто может привести код, напишите.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.09.2019, 21:17
Помогаю со студенческими работами здесь

[Hibernate & Spring Data] Получить список объектов сущности из ManyToMany
Сущность User @Entity @Table(name = "users") public class User { @Id @GeneratedValue(strategy = GenerationType.AUTO) ...

Oracle + Spring Data
нужно создать метод, который получает значению по указанному полю ( метод должен быть универсальным) , то есть имя поля и имя значения,...

Spring MVC. 404 ошибка при включении Spring Data JPA в проект
Добрый день. Есть простой шаблонный проект с использованием Spring MVC и Maven. С зависимостями Spring MVC проект собирается нормально и...

Ошибка подключения к базе Oracle DB Express 11g через Oracle Data Integrator
Приветствую. На работе дали задание: установить Oracle Data Integrator и создать стенд с репозиторием. Установил Java, Oracle DB...

Hibernate 5 spring
я пытаюсь создать через класс утилиту объект session но при инициализации путь к hibernate.cfg.xml оно пытается отыскать в папке ...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
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