| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > динамическое создание классов в Hibernate |
| Автор: nogoody 4.2.2008, 16:39 |
| Задача в следующем... Мой проект построен на Хибернете 3... Вот простой пример: есть класс А, от него наследуются классы B и С, все приложение прекрасно работает, и вот нам из программы захотелось создать класс D и динамически подключить его... т.е. мы должны создать xml и замапить ее... а еще создать класс и подключить ее к проекту... вот как это сделать динамически, чтобы класс сгенерировался под наш xml? и вообще возможно ли это? я новичок в этом поэтому хотелось бы увидеть пример... помогите... |
| Автор: tux 4.2.2008, 21:47 |
| Вполне вероятно что возможно, но вряд ли посильно для новичка. Посмотри в сторону http://cglib.sourceforge.net/ и API Hibernate. |
| Автор: Tamerlann 5.2.2008, 00:33 |
| Если бы у нас было более подробное описание проблемы (в частности, зачем именно динамически создавать класс D?) мы могли бы подсказать более простой выходи из ситуации. Я думаю, что необходимость создавать и подключать класс динамически скорее всего на самом деле отсутствует. |
| Автор: Greg 5.2.2008, 00:38 |
| По идее, если класс генерируется во время выполнения, то для того, что бы добавить мэпинг придется менять Configuration и билдить заново SessionFactory - а это, насколько мне подсказывает интуиция, может обойтись дорого. Теперь по сути: в пакете Hibernate Tools есть утилита hbm2java, которая умеет на основе мэпингов генерировать исходный код - и это уже что-то. Теперь остается только скомпилировать этот класс во время выполнения. Соотвественно для работы с состоянием объекта, нужно будет использовать Java Reflection API либо напрямую, либо используя утилиты, которые его реализуют и обладают более дружественным API. Вариант короче придумать не получилось ;) |
| Автор: nogoody 5.2.2008, 14:06 |
| Спасибо всем кто помог... задача конечно не легкая... хотя и интересная... буду разбираться дальше по докам |
| Автор: dementiev 29.4.2012, 14:32 |
| Всем привет. Не буду подымать новый тред, т.к. проблема схожая просто дам линк на мой вопрос. Дайте, пожалуйста, пару мыслей, как я могу решить данную проблему: http://www.geomajas.org/node/605 . Также обсуждение hibernate части вопроса на stackoverflow: http://stackoverflow.com/questions/10371536/hibernate-create-entitywith-annotations-in-runtime Заранее спасибо за советы. |