Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / [Hibernate] Вставка с указанным первичным ключом / 19 сообщений из 19, страница 1 из 1
04.02.2013, 15:07:10
    #38136385
scymaks
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Hibernate] Вставка с указанным первичным ключом
При запуске приложения, если в базе нет данных о "ДЕМО продукте", то нужно данные об этом продукте внести в базу.

В Hibernate выставлен id ~ identity.

Приходится как-то извращаться и вносить sql запрос средствами Hibernate Native sql.

Можно ли как-то сделать вот так:

Код: java
1.
2.
demoProduct.setId(0);
session.saveWithSpecifiedPrimaryKey(demoProduct);


?
...
Рейтинг: 0 / 0
04.02.2013, 15:15:26
    #38136403
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Hibernate] Вставка с указанным первичным ключом
Посмотри session.replicate(), хотя не уверен что он с identity справится.
...
Рейтинг: 0 / 0
04.02.2013, 16:00:25
    #38136499
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Hibernate] Вставка с указанным первичным ключом
scymaksВ Hibernate выставлен id ~ identity.
по уму нужна колонка - ТипПродукта.
Т.е. обычный справочник.
Тогда и проблемы нет.
..
А так ведь, Пол мужской или женский будем тройкой обозначать))) Id=3
...
Рейтинг: 0 / 0
04.02.2013, 16:22:29
    #38136570
scymaks
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Hibernate] Вставка с указанным первичным ключом
Petro123,

Это-то да, вариант конечно.

Просто в базе тогда будет храниться

одна единственная запись с типом = "demo"
а все остальные с null или "regular"...

а ведь записей много будет
...
Рейтинг: 0 / 0
04.02.2013, 16:24:29
    #38136577
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Hibernate] Вставка с указанным первичным ключом
scymaks,
если один раз в жизни, то уже выносят из динамики в статику .
В коде глобальный параметр и прошивают везде....хоть по имени 'Demo'.
...
Рейтинг: 0 / 0
04.02.2013, 17:04:05
    #38136687
scymaks
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Hibernate] Вставка с указанным первичным ключом
Petro123,

можно в других словах? Я что-то не понял...
...
Рейтинг: 0 / 0
04.02.2013, 17:06:08
    #38136692
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Hibernate] Вставка с указанным первичным ключом
scymaksможно в других словах? Я что-то не понял...
Если demo-продукт нужен всегда и везде, то может и не за чем, хранить его в базе?
...
Рейтинг: 0 / 0
04.02.2013, 17:09:11
    #38136698
scymaks
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Hibernate] Вставка с указанным первичным ключом
Blazkowicz,

как это? На него же может ссылатся какой-то другой объект, который будет в базе.
...
Рейтинг: 0 / 0
04.02.2013, 17:09:53
    #38136700
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Hibernate] Вставка с указанным первичным ключом
scymaksPetro123,
можно в других словах? Я что-то не понял...
уже ответили.
1. Нужно знать чем у вас Демо отличается от не Демо.
...
Рейтинг: 0 / 0
04.02.2013, 17:13:34
    #38136707
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Hibernate] Вставка с указанным первичным ключом
на ContextListener повесь код своего инсерта, можно через jdbc даже. Если жемо нету - то инсерт пройдет. Если есть - то обрыгается на констрейнте уникальный ключ - ну и леший с ним, зато запись будет гарантированно в базе.
...
Рейтинг: 0 / 0
04.02.2013, 17:13:58
    #38136708
scymaks
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Hibernate] Вставка с указанным первичным ключом
Petro123,

*мысль: возможно, у нас неправильная архитектура*

ну есть продукция....

и каждый продукт имеет "срок годности", это то время после которого с продуктом нужно обращаться иначе.
и... типа есть демо продукт, который после того , как истекает срок годности - заново рестартует начисляя, скажем +День к сроку годности, и тогда получается, что он снова годный, а через день уже закончится, а через день снова рестарт и так "бесконечно".
...
Рейтинг: 0 / 0
04.02.2013, 17:28:52
    #38136729
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Hibernate] Вставка с указанным первичным ключом
scymaks,
это Демо-поведение-эмуляция-тесты включены в ТЗ заказчиком?
Т.е. разве это нужно заказчику?
Если нет, то эти Демо можно сделать снаружи Модели ТОЛЬКО для себя. Скажем запуская какие нибудь Jobs для списка демо из файла.
Вариант2:
- каждый продукт имеет категорию-тип. Вот завести Доп-категорию не Носки, а ДемоНоски.
У заказчика этой категории не будет.
...
Рейтинг: 0 / 0
04.02.2013, 18:54:25
    #38136909
scymaks
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Hibernate] Вставка с указанным первичным ключом
Petro123,

это есть по тз.
Да, наверное заведем тип продута
...
Рейтинг: 0 / 0
04.02.2013, 19:22:25
    #38136944
scymaks
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Hibernate] Вставка с указанным первичным ключом
Всем спасибо!
...
Рейтинг: 0 / 0
05.02.2013, 05:50:57
    #38137269
scymaks
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Hibernate] Вставка с указанным первичным ключом
Немного приоткрою тему обратно...

Мы вот задумались, а что если при старте Hibernate запускать скрипт, который вносит этот самый демо продукт?

Это нормальный подход?
...
Рейтинг: 0 / 0
05.02.2013, 08:02:12
    #38137303
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Hibernate] Вставка с указанным первичным ключом
scymaks,
Ну в виндах же есть автозагрузка.
Только причем тут сабж.
...
Рейтинг: 0 / 0
05.02.2013, 08:20:13
    #38137313
pavel_nv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Hibernate] Вставка с указанным первичным ключом
scymaks,

если мыслить логически то ДемоПродукт - это номенклатура, а номенклатура обычно не удаляется.
Так что, на мой взгляд, достаточно в процессе развертывания приложения выполнить скрипт с демо записями (первичное наполнение бд)
...
Рейтинг: 0 / 0
05.02.2013, 11:43:51
    #38137607
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Hibernate] Вставка с указанным первичным ключом
scymaksНемного приоткрою тему обратно...

Мы вот задумались, а что если при старте Hibernate запускать скрипт, который вносит этот самый демо продукт?

Это нормальный подход?

А я еще вчера задумался
авторна ContextListener повесь код своего инсерта, можно через jdbc даже. Если жемо нету - то инсерт пройдет. Если есть - то обрыгается на констрейнте уникальный ключ - ну и леший с ним, зато запись будет гарантированно в базе.
...
Рейтинг: 0 / 0
05.02.2013, 12:46:54
    #38137758
scymaks
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Hibernate] Вставка с указанным первичным ключом
забыл ник, да, спасибо, учтем на будущее как вариант.

Всем еще раз спасибо!

Проблема решена.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / [Hibernate] Вставка с указанным первичным ключом / 19 сообщений из 19, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]