Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Hibernate генерация id, Как в хибере сгенерировать id  
:(
    Опции темы
CBEPX4EJIOBEK
Дата 2.2.2009, 11:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 14.4.2008

Репутация: нет
Всего: нет



 smile  Друзья, подскажите пожалуйста, как в hibernate сгенерировать id таким образом, чтоб id были рандомные и больших размеров ... скажем 8 - 10и-значные цифры... Причем хотелось бы используя стандартные возможности hibernate... все это сделать.... 
PM MAIL   Вверх
garbuz
Дата 2.2.2009, 11:58 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 677
Регистрация: 22.1.2008

Репутация: 8
Всего: 11



Цитата(CBEPX4EJIOBEK @  2.2.2009,  11:43 Найти цитируемый пост)
чтоб id были рандомные и больших размеров ... скажем 8 - 10и-значные цифры...

Мне кажется, что это не очень хорошая идея...  
PM MAIL   Вверх
ecologist
Дата 2.2.2009, 12:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 452
Регистрация: 28.2.2007

Репутация: 5
Всего: 9



Может проще в базе данных сделать начальный id просто большим. Если уж надо начать с какого-то большого числа.
PM MAIL   Вверх
CBEPX4EJIOBEK
Дата 2.2.2009, 12:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 14.4.2008

Репутация: нет
Всего: нет



мне нужно чтоб вероятность того что пользователь введет id такой какой есть таблице приближалась к 0. 
PM MAIL   Вверх
lemonade
Дата 2.2.2009, 13:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 7.12.2006
Где: Беларусь, Минск

Репутация: 2
Всего: 2



А зачем в такие вещи пользователя вообще пускать? 
На крайняк выведи новый id в поле readOnly (если пользователю гипернужно знать id).
По мне дак лучше сделать unique на полу вменяемого трокового идентификатора, который пользователь задаст сам + генерация серийного номера простым инкрементом.  

Это сообщение отредактировал(а) lemonade - 2.2.2009, 13:34
PM MAIL ICQ Skype   Вверх
necromancer
Дата 2.2.2009, 14:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 317
Регистрация: 26.7.2006
Где: Москва

Репутация: 6
Всего: 7



господа, опять вдарились в палемику, вместо того что бы просто ответить человеку на его пусть и вопрос =)
господа философы - в сад! =)

@Id
private String|Long|Integer id = SomeStaticClass.getId();


--------------------
С уважением, 
                 Виталий Смык
----------------------------------------------------------------------------------------------
SCJP, SCWCD, OCA
http://dev.maryno.net/video/
PM MAIL WWW ICQ Skype   Вверх
CBEPX4EJIOBEK
Дата 2.2.2009, 14:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 14.4.2008

Репутация: нет
Всего: нет



Цитата

хотелось бы используя стандартные возможности hibernate


Цитата

SomeStaticClass.getId();


просто думалось что есть интересные GenerationType... т.е. как я понимаю мне придется самому писать generator для этих айдишников.... а это видимо будет не очень правильно...
PM MAIL   Вверх
necromancer
Дата 2.2.2009, 15:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 317
Регистрация: 26.7.2006
Где: Москва

Репутация: 6
Всего: 7



ну =) наверное ты можешь расковырять Hiberbate API и написать свой генератор =) что бы потом его красиво туда подставить в виде анотаций =)

есть такая штука для String - java.util.UUID, там уник генерируется на основе мак адреса и времени. вполне себе так уникально. Но что касается чисел..увы, для многопоточной(многосерверной системы) гарантией уникальности может быть только сторонний сервис, единый для всех (например база данных)

Это сообщение отредактировал(а) necromancer - 2.2.2009, 15:52


--------------------
С уважением, 
                 Виталий Смык
----------------------------------------------------------------------------------------------
SCJP, SCWCD, OCA
http://dev.maryno.net/video/
PM MAIL WWW ICQ Skype   Вверх
AntonSaburov
Дата 2.2.2009, 15:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 8
Всего: 118



Я не очень понимаю - а чем не устраивает генератор SQL ? И условие уникальности поля на таблицу.

Цитата(necromancer @  2.2.2009,  14:11 Найти цитируемый пост)
господа, опять вдарились в палемику, вместо того что бы просто ответить человеку на его пусть и вопрос =)

Это вопрос из области - какой стороной микроскопа лучше забивать гвозди. Микроскоп не для этого сделан.
PM MAIL WWW ICQ   Вверх
necromancer
Дата 2.2.2009, 16:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 317
Регистрация: 26.7.2006
Где: Москва

Репутация: 6
Всего: 7



Антон, не нам судить для чего сделан микроскоп, может у человека под рукой ничего кроме микроскопа и нету, а гвоздь забить уж очень хочется.
Флейм на эту тему лучше тут не продолжать =) я так однажды на 10 страниц расписался =)

достаточно просто ответить человеку (если знаешь ответ) и как пожелание написать, почему он не прав и куда следуюет смотреть.


--------------------
С уважением, 
                 Виталий Смык
----------------------------------------------------------------------------------------------
SCJP, SCWCD, OCA
http://dev.maryno.net/video/
PM MAIL WWW ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0624 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.