Hibernate ORM для сопоставления с не-классами

Я создаю подсистему хранения для платформы приложений. Метамодель будет динамической (изменяемой во время выполнения). У меня есть метамодель для представления структуры модели (в комплекте с псевдоклассами со свойствами, отношениями, иерархией и т. д.). Поскольку метамодель является динамической, в метамодели нет классов Java, соответствующих псевдоклассам.

Я знаю, что Hibernate использует метамодель для сопоставления классов и таблиц, генерации запросов на основе модели классов и заполнения объектов. Мне интересно, есть ли способ для Hibernate сделать это для метаклассов вместо классов, заполняя прокси-объекты вместо конкретных POJO.

По сути, я хочу использовать свою метамодель для определения отображения O/R вместо классов Java. Это выполнимо с Hibernate? Я обдумывал идею динамической генерации реальных классов во время выполнения с помощью чего-то вроде CGLib и их сопоставления, но я надеюсь, что есть способ получше.

Я надеюсь, что есть способ использовать для этого что-то вроде Hibernate Proxy, только не создавая подклассы POJO, просто оставаясь «чистым» прокси.

Мысли?


person koehn    schedule 21.08.2012    source источник


Ответы (1)


Подпапки в https://github.com/hibernate/hibernate-orm/tree/master/hibernate-core/src/test/java/org/hibernate/test/dynamicentity представляют 3 способа, которыми вы можете это сделать. Я бы посмотрел на подход tuplizer2.

person Steve Ebersole    schedule 22.08.2012