|
|
|
Hibernate + генерация уникального значения
|
|||
|---|---|---|---|
|
#18+
Простейшая таблица - первичный ключ и поле с уникальным значением (ну допустим номер накладной). Ключ генерит, а вот что делать с номером накладной. Имею в виду случай, когда приложение в своей работе может использовать любой сервер БД. Не реализовывать же каждый раз триггеры или хранимые процедуры. Может Hibernate сам умеет. Поделитесь - кто сталкивался..... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2006, 21:15 |
|
||
|
Hibernate + генерация уникального значения
|
|||
|---|---|---|---|
|
#18+
Я не понял, что ты хочешь сделать с номером накладной. Генерить автоинкрементное значение и для него тоже? Или он является первичным ключом? Или тебе нужно гарантировать уникальность? Подобные вещи могут быть описаны на уровне конфига. ====================== - Я подхожу к клетке с медведем панда... Видите, какие у него черные круги под глазами?! Медведь панда как бы всем своим видом говорит нам: "Не бухайте!" ====================== ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2006, 08:17 |
|
||
|
Hibernate + генерация уникального значения
|
|||
|---|---|---|---|
|
#18+
Автоматически генерировать, ну и естественно уникальное. К первичному ключу это отношение не имеет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2006, 09:19 |
|
||
|
Hibernate + генерация уникального значения
|
|||
|---|---|---|---|
|
#18+
Проблема еще актуальна? В принципе задача решаема, но не совсем автоматически. Нет по-моему в hibernate такой возможности, чтобы на уровне маппинга задать дефалтовое значение для поля и еще чтобы оно было вычисляемым (генерируемым) и уникальным. Но есть путь немного длиннее (с необходимостью писать java код), но вполне технологичный и проверенный. Описан он в документации по hibernate в главе «Interceptors and events». Суть подхода в том, что вам нужно создать листенер события создания объекта и в этом листенере как раз и генерировать (любым способом) номер накладной и присваивать полю «номер накладной» это значение. Осуществляется это в два шага: 1. Создать листенер, в котором будете присваивать номер Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 2. Привязать листенер к конфигурации: Код: plaintext 1. 2. 3. 4. 5. 6. Я думаю это лучше чем «…реализовывать каждый раз триггеры или хранимые процедуры». Надеюсь это поможет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2006, 10:37 |
|
||
|
Hibernate + генерация уникального значения
|
|||
|---|---|---|---|
|
#18+
Этот способ в общем то ничем не отличается от триггера... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2006, 10:52 |
|
||
|
Hibernate + генерация уникального значения
|
|||
|---|---|---|---|
|
#18+
TimmЭтот способ в общем то ничем не отличается от триггера... Я бы так не сказал. 1) Триггер придется писать для каждой СУБД свой. А тут есть возможнсоть написать генерацию один раз (на java), и она будте работать для всех поддерживаемых СУБД одинаково; 2) При таком подходе не возникнет никаких дополнительных проблем с обновлением (актуализацией) данныхю. Hibernate будет работать с актуальными данными всегда; 2а) Есть определнные недостатки в случае, когда какие-то изменения проходят черзе Hibernate а какие-то делаются напрямую СУБД. Можно получить проблемы с рассинхронизацией данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2006, 11:03 |
|
||
|
Hibernate + генерация уникального значения
|
|||
|---|---|---|---|
|
#18+
pretender TimmЭтот способ в общем то ничем не отличается от триггера... Я бы так не сказал. 1) Триггер придется писать для каждой СУБД свой. А тут есть возможнсоть написать генерацию один раз (на java), и она будте работать для всех поддерживаемых СУБД одинаково; 2) При таком подходе не возникнет никаких дополнительных проблем с обновлением (актуализацией) данныхю. Hibernate будет работать с актуальными данными всегда; 2а) Есть определнные недостатки в случае, когда какие-то изменения проходят черзе Hibernate а какие-то делаются напрямую СУБД. Можно получить проблемы с рассинхронизацией данных. 2а очень серьезный аргумент в пользу триггера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2006, 11:15 |
|
||
|
Hibernate + генерация уникального значения
|
|||
|---|---|---|---|
|
#18+
Timm 2а очень серьезный аргумент в пользу триггера. Это аргумент в пользу того, чтобы по возможности не смешивать различные подходы и технологии при создании одного приложения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2006, 11:43 |
|
||
|
Hibernate + генерация уникального значения
|
|||
|---|---|---|---|
|
#18+
To pretender. Вы совершенно правильно поняли мою мысль. Создается приложение которое не будет использовать особенности применяемой СУБД. Для этого Hibernate и используется. Я попробую пойти путем который вы подсказали. Отпишу о результатах чуть позже. Спасибо.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2006, 12:16 |
|
||
|
Hibernate + генерация уникального значения
|
|||
|---|---|---|---|
|
#18+
victorpTo pretender. Вы совершенно правильно поняли мою мысль. Создается приложение которое не будет использовать особенности применяемой СУБД. Для этого Hibernate и используется. Я попробую пойти путем который вы подсказали. Отпишу о результатах чуть позже. Спасибо.... это сказки. либо очень простое CRUD-style приложение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2006, 12:34 |
|
||
|
Hibernate + генерация уникального значения
|
|||
|---|---|---|---|
|
#18+
Timm это сказки.... Это не сказки, это давно уже реальность. И, как сказал victorp: "Для этого Hibernate и используется". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2006, 12:54 |
|
||
|
Hibernate + генерация уникального значения
|
|||
|---|---|---|---|
|
#18+
victorpОтпишу о результатах чуть позже. Спасибо.... Не за что... Надеюсь получится... Обязательно напишите о результатах. Буду ждать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2006, 12:56 |
|
||
|
Hibernate + генерация уникального значения
|
|||
|---|---|---|---|
|
#18+
pretender Timm это сказки.... Это не сказки, это давно уже реальность. И, как сказал victorp: "Для этого Hibernate и используется". авторTo pretender. Вы совершенно правильно поняли мою мысль. Создается приложение которое не будет использовать особенности применяемой СУБД. Для этого Hibernate и используется. Я попробую пойти путем который вы подсказали. Отпишу о результатах чуть позже. Спасибо.... в данном случае это еще не реальность ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2006, 13:10 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=33891621&tid=2148536]: |
0ms |
get settings: |
5ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
149ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
29ms |
get tp. blocked users: |
1ms |
| others: | 193ms |
| total: | 399ms |

| 0 / 0 |
