Метамодельные классы, сгенерированные инструментами 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, то, вероятно, безопасно удалить классы.