powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Что делать если у меня нет первичного ключа в базе , а hibernate требует его явно писать.
25 сообщений из 33, страница 1 из 2
Что делать если у меня нет первичного ключа в базе , а hibernate требует его явно писать.
    #33074395
Alexey Turn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
<id name="id" type="integer" unsaved-value="null" >
<generator class="identity"/>
</id>
Но в таком случае мне придется добавлять столбец id в таблицу.

Если я пишу так:

<id type="integer" unsaved-value="null" >
<generator class="identity"/>
</id>

То добавлять столбец в таблицу не приходится, но при любой выборке типа
"from hiber.CatImp1 " возникает ошибка SQLException catimp1_id column not found...
...
Рейтинг: 0 / 0
Что делать если у меня нет первичного ключа в базе , а hibernate требует его явно писать.
    #33074433
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может сначало решите проблему с вашей базой в которой нет PK?
...
Рейтинг: 0 / 0
Что делать если у меня нет первичного ключа в базе , а hibernate требует его явно писать.
    #33074508
Alexey Turn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я интересовался у людей плотно работающих с базами, мне сказали что пк желателен, но не обязателен. Я работаю с их базой. Что мне делать в случае hibernate.
...
Рейтинг: 0 / 0
Что делать если у меня нет первичного ключа в базе , а hibernate требует его явно писать.
    #33074549
Alexey Turn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот еще вопрос..

В SQL я могу связать две любые таблицы про полю одного типа...

select * from table1 t1 inner join table2 t2 on t1.name=t2.title

Как проделать это с помощью HQL запроса? Непонятно.

Подскажите hibernate новичку люди добрые.

Хибернейтный inner join делает немного другое...
...
Рейтинг: 0 / 0
Что делать если у меня нет первичного ключа в базе , а hibernate требует его явно писать.
    #33074595
Фотография XM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey TurnЯ интересовался у людей плотно работающих с базами, мне сказали что пк желателен, но не обязателен.
Что?????????
Alexey TurnЧто мне делать в случае hibernate.
Вернуться к старому доброму JDBC
...
Рейтинг: 0 / 0
Что делать если у меня нет первичного ключа в базе , а hibernate требует его явно писать.
    #33074613
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Turn

Т.е. ПК нет вообще или он есть но без constraint'а или индекса? Вы как запросы к такой БД пишите? Пример можно?

Я интересовался у людей, плотно работающих с базами..

Обычно таких людей предлагают отстреливать, чтобы не портили генофонд...
...
Рейтинг: 0 / 0
Что делать если у меня нет первичного ключа в базе , а hibernate требует его явно писать.
    #33074622
funikovyuri Alexey Turn

Т.е. ПК нет вообще или он есть но без constraint'а или индекса? Вы как запросы к такой БД пишите? Пример можно?

Я интересовался у людей, плотно работающих с базами..

Обычно таких людей предлагают отстреливать, чтобы не портили генофонд...

люди всякие нужны
...
Рейтинг: 0 / 0
Что делать если у меня нет первичного ключа в базе , а hibernate требует его явно писать.
    #33074655
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не спорю. я думаю Алексей их как-то неправильно понял
...
Рейтинг: 0 / 0
Что делать если у меня нет первичного ключа в базе , а hibernate требует его явно писать.
    #33074663
Фотография Timm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
funikovyuri Alexey Turn

Т.е. ПК нет вообще или он есть но без constraint'а или индекса? Вы как запросы к такой БД пишите? Пример можно?

Я интересовался у людей, плотно работающих с базами..

Обычно таких людей предлагают отстреливать, чтобы не портили генофонд...
Слишком категорично... Отсутствие pk - нормальная ситуация.
С этим можно и нужно жить (ц) не знаю кто
...
Рейтинг: 0 / 0
Что делать если у меня нет первичного ключа в базе , а hibernate требует его явно писать.
    #33074750
Фотография XM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TimmОтсутствие pk - нормальная ситуация.
С этим можно и нужно жить (ц) не знаю кто

Можно уточнить, "нормальная" - в смысле "широко распространненная в нашем несовершеном мире криворуких головотяпов - разработчиков" ?
...
Рейтинг: 0 / 0
Что делать если у меня нет первичного ключа в базе , а hibernate требует его явно писать.
    #33074753
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Timm

да не вопрос! это у меня настроение наверное сегодня такое ;)

PS> я думаю все-таки кто-то кого не понял и пока Алексей ясно картину не нарисует обсуждать по-сути нечего
...
Рейтинг: 0 / 0
Что делать если у меня нет первичного ключа в базе , а hibernate требует его явно писать.
    #33074872
Фотография Timm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
XM TimmОтсутствие pk - нормальная ситуация.
С этим можно и нужно жить (ц) не знаю кто

Можно уточнить, "нормальная" - в смысле "широко распространненная в нашем несовершеном мире криворуких головотяпов - разработчиков" ?
Я этого не говорил :-)
...
Рейтинг: 0 / 0
Что делать если у меня нет первичного ключа в базе , а hibernate требует его явно писать.
    #33074877
Alexey Turn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Началось, как я уже говорил с хибернэйта.

Головотяпом- разработчиком в данном случае выступаю я.
В моем веб- приложении есть 2 таблицы (На самом деле их больше но интересны эти.)

Моя mysql база синхронизируется с базой database developerov,
т.е происходит закачка справочников от них ко мне.

Таблица 1 :

название: price
поле price_id int pk
поле id_nprice int pk
поле price_title varchar

Первые два поля композитный ключ(точно не знаю как это называется) но по ним однозначно определяется строка таблицы.

В своей базе я не стал обзывать эти поля primary key, потому, что предполагаю что таблица из которой я импортирую данные зараннее корректна.

Эту проблему я предполагаю решить следующим образом: навесить таки primary keys на поля. Замапить composite id в hibernate.

Далее...

Есть вторая таблица:

имя: links
поля: price_id int pk
field1 int pk
field2 int pk
field3 int pk
id_nprice int
Все поля в этой таблице кроме id_nprice составляют пк.
Вопрос как с помощью хибернэйт реализовать sql выборку:

select * from price p inner join links l on (p.price_id=l.price_id AND p.id_nprice=l.id_nprice);
...
Рейтинг: 0 / 0
Что делать если у меня нет первичного ключа в базе , а hibernate требует его явно писать.
    #33074890
Alexey Turn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пока забил на все и написал Connection conn= session.connection()..
...
Рейтинг: 0 / 0
Что делать если у меня нет первичного ключа в базе , а hibernate требует его явно писать.
    #33074930
Фотография XM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поправьте, если я ошибаюсь, но Hibernate, как и прочие ORM, всегда требует наличия ID (простых или composite).

По теме http://www.hibernate.org/hib_docs/reference/en/html/components.html ?
...
Рейтинг: 0 / 0
Что делать если у меня нет первичного ключа в базе , а hibernate требует его явно писать.
    #33074969
Alexey Turn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хм по этой ссылке рассказывается про Component Mapping.
Мне хотелось бы узнать как замапить композитный пк и что потом с ним можно делать... именно об этом я щас и читаю.
...
Рейтинг: 0 / 0
Что делать если у меня нет первичного ключа в базе , а hibernate требует его явно писать.
    #33076213
Alexey Turn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сейчас оказывается что использование композитных ключей вобще не рекомендовано создателями hibernate и якобы лучше использовать суррогатные ключи, т.е добавлять суррогатный.. лишний столбец ключа в таблицу.
При использовании композитных ключей приходиться возиться с equals() и hashCode() ами, что немного напрягает и сложно для понимания.

Если придется ставить суррогатный ключ, то получается что на него надо в любом случае ставить счетчик- auto_increment.
Иначе при закачке данных в таблицу не через хибернэйт никакой генерации суррогатных ключей не будет.

Последнее время хибернэйт нравится мне все меньше и меньше... может те кому хорошо с хибернэйт поделятся секретами счастья?
...
Рейтинг: 0 / 0
Что делать если у меня нет первичного ключа в базе , а hibernate требует его явно писать.
    #33076489
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Turn

При использовании композитных ключей приходиться возиться с equals() и hashCode() ами, что немного напрягает и сложно для понимания.
Спешу огорчить - с ними нужно будет "возиться" в любом случае... Так что если это "сложно для понимания" то мой совет дождаться момента, когда будет не сложно. Hibernate чрезвычайно полезная и мощная вещь, но он требует больших базовых знаний и по ООП и по РСУБД. Его очень сложно осилить не имя большого опыта в этих областях за плечами
...
Рейтинг: 0 / 0
Что делать если у меня нет первичного ключа в базе , а hibernate требует его явно писать.
    #33077384
Alexey Turn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просто возникает законный вопрос.
Надо ли оно мне.. ради обычного inner join мапить две таблицы, создавать композитные ключи, переопределять методы equals и hashCode() и писать для двух таблиц 6 файлов.. два интерфейса два класса два xml маппинга и два теста.. итого 8 ..
Что мне это даст, какие преимущества это противопоставит обычному jdbc, для которого здесь нужен будет всего один exequteQuery();
...
Рейтинг: 0 / 0
Что делать если у меня нет первичного ключа в базе , а hibernate требует его явно писать.
    #33077472
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При такой постановке вопроса - конечно ничего не даст. А что вы от hibernate ждали?
...
Рейтинг: 0 / 0
Что делать если у меня нет первичного ключа в базе , а hibernate требует его явно писать.
    #33077882
Фотография andrushok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет Всем,
я, как вижу, нашего полку прибыло, еще один hiberneto-ненависник вырисовывается... Привет коллеге.

На самом деле все просто. Я, да и Алексей наверно, привыкли _мыслить_ понятиями базы, а hibernate предпологает _мыслить_ понятиями ООП. А сии взгляды очень расхожи. А главное, мыслить и так и сяк одновременно невозможно (в рамках одного проекта). Имея кой-какой опыт работы с базой уже привыкаешь к кой-каким реальностям (отсутсвие ПК например). Оч.часто приходиться работать воще не со своей базой, а с чужой, спроектированной, может не лучшим образом. Ну а тут еще hibernate начинает палки в колеса ставить своими _принцыпами_.

Я ничего не имею супротив ООП. И hibernate в частности. Вот тольки стоит отдавать себе отчет в том, что вся его _мощь_ может быть использована только при наличии неких определенных (близких к идеальным) условиях. В остальных случаях можно получить много головной боли. В частности, кады начнешь мешать JDBC с hibernate. Сие можно сделать, но осторожно. По крайней мере понимая, как hibernate работает с базой.
...
Рейтинг: 0 / 0
Что делать если у меня нет первичного ключа в базе , а hibernate требует его явно писать.
    #33077923
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrushok

вилами по воде... в общем полностью не согласен :)
...
Рейтинг: 0 / 0
Что делать если у меня нет первичного ключа в базе , а hibernate требует его явно писать.
    #33078174
Фотография andrushok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так уж и со ВСЕМ? А можно поподробнее? Таки hibernate еще не покинул моих планов ...
...
Рейтинг: 0 / 0
Что делать если у меня нет первичного ключа в базе , а hibernate требует его явно писать.
    #33078702
NotGonnaGetUs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrushokТак уж и со ВСЕМ? А можно поподробнее? Таки hibernate еще не покинул моих планов ...

Имхо, книжка "hibernate in action" ответит быстрее и на большее число вопросов.
...
Рейтинг: 0 / 0
Что делать если у меня нет первичного ключа в базе , а hibernate требует его явно писать.
    #33078900
Фотография andrushok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну шо за такой народ ленивый пошел. Да читал я Ваши книжечки. И не только. Терзал сей hibernate по мере сил и возможностей. Дык Вы хоть чой-то реальное на нем пишите? Я честно признаюсь - не писал еще. Только примерчики всяки... Поэтому и вопросов, больше чем ответов.

Ну дык, коли лень поднять зад, давайте небольшой опросец забацаем. Я вопросики просты задам, а коме не совсем влом, пусть тольки да-нет ответит (ну ежели совсем не влом, комментарии тольки приветсвуются ...). Вы кстати, тоже вопросики добавлять могете (опять таки если не влом...). Я уж отвечу, не поленюся.

Итак, поехали
1) Hibernate ускоряет разработку простых и средних приложений
2) Hibernate ускоряет разработку сложных приложений
3) Не рекомендуется мешать hibernate и JDBC
4) Hibernate заменяет понятие RDB на что-то типа "Persistent objetcs in DB"
5) Hibernate не рекомендует использовать native SQL
6) Hibernate работает медленнее, чем если реализовывать через JDBC
7) Сей топик породил еще одного (как миниум) hibernato-ненависника
8) ООП - панацея на все
...
Рейтинг: 0 / 0
25 сообщений из 33, страница 1 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / Что делать если у меня нет первичного ключа в базе , а hibernate требует его явно писать.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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