Классы метамодели, сгенерированные инструментами Hibernate - PullRequest
1 голос
/ 01 июля 2011

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

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

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

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

1 Ответ

2 голосов
/ 03 июля 2011

Метамодельные классы используются «API типов безопасности», который был добавлен в JPA 2.0. Подробная информация об этом API здесь:

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

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

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

...