![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| force |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 20.11.2005 Репутация: нет Всего: нет |
Может кто-нибудь знает универсальный способ, как получить primary key у какой-либо entity. Она может быть как аннотированной (@Entity), так и объявленной в *.hbm.xml. entity могут быть любые, из каких-либо библиотек, поэтому вариант, чтобы они все реализовывали какой-либо интерфейс, содержащий метод getId() не подходит. Можно конечно предположить, что именно метод getId() возвращает этот ключ и вызывать его через рефлексию, но где-нибудь можно и обломаться. У EntityManager никаких похожих методов нет :(
Если рассматривать только классы, маппинг которых объявлен при помощи аннотаций, то здесь можно просто искать метод с аннотацией @Id и всё. Но нужно ещё как-то с xml маппингом решать. Это сообщение отредактировал(а) force - 27.1.2008, 20:47 |
|||
|
||||
| AlexeyVorotnikov |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 658 Регистрация: 18.6.2007 Где: Москва Репутация: 3 Всего: 18 |
Речь идёт о Hibernate, я не ошибаюсь?
Попробуйте посмотреть в сторону Configuration.getClassMapping(String entityName).getTable().getPrimaryKey(). -------------------- RTFM! Три источника и три составные части Java: The Java Language Specification, Java Platform API Specification, The Java Virtual Machine Specification |
|||
|
||||
| force |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 20.11.2005 Репутация: нет Всего: нет |
Спасибо!
Но вся работа идет через EntityManager. Хибернейтовский конфиг просто включен в persistence.xml:
|
|||
|
||||
| Ornitos |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 13.10.2007 Где: Непал Репутация: 1 Всего: 3 |
Этот способ возвращает не значение ключа, а его описание в виде объекта Property. Плюс он не универсален. Для создания фабрики сессий может использоваться, например, AnnotationConfiguration. |
||||
|
|||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |