Метамодельные классы, сгенерированные инструментами Hibernate

Я использую Hibernate Tools в Eclipse, чтобы перепроектировать доменные объекты существующей базы данных.

У меня более-менее все генерируется так, как я хочу, хотя я все еще получаю партию классов "Метамодели", сгенерированных вместе с моими классами предметной области. Это классы с тем же именем, но с суффиксом и подчеркиванием "_".

Я прочитал некоторые документы по концепции метамодели здесь, но я все еще не уверен в их назначении...

Безопасно ли мне просто удалить эти классы? Если они бесполезны для меня, я бы предпочел, чтобы они не загромождали мой пакетный проводник.

1 ответ

Решение

Классы Metamodel используются "API типов безопасности", который был добавлен в JPA 2.0. Подробности об этом API здесь:

http://docs.jboss.org/hibernate/entitymanager/3.5/reference/en/html_single/

Hibernate EntityManager может использовать классы метамодели, чтобы проверить, что Критерии действительны для данного набора объектов. Например, если вы попытаетесь написать запрос, который добавляет предложение "where" к свойству объекта, Hibernate может проверить, действительно ли свойство существует в вашей модели, и (я считаю) сгенерировать ошибку или предупреждение во время компиляции. При использовании старого Criteria API в Hibernate единственным способом проверки такого запроса было его выполнение и проверка, было ли выброшено исключение.

Если вы не планируете использовать этот Criteria API, то, вероятно, безопасно удалить классы.

Другие вопросы по тегам