Согласно спецификации JPA, вы должны явно перечислить все классы в среде Java SE:
6.2.1.6 файл сопоставления, файл jar, класс, exclude-unlisted-classes
(...)
Список именованных управляемых персистентностей
классы также могут быть указаны вместо
или в дополнение к файлам JAR
и сопоставление файлов. Любое отображение
аннотации метаданных, найденные на этих
классы будут обработаны, или они
будет отображаться с помощью сопоставления
аннотации по умолчанию. Элемент класса
используется для перечисления управляемой персистентности
учебный класс. Список всех имен управляемых
классы постоянства должны быть указаны
в средах Java SE, чтобы застраховать
портативность. Portable Java SE
приложения не должны полагаться на
другие механизмы, описанные здесь, чтобы
указать управляемое постоянство
классы единицы сохраняемости.
Постоянные поставщики могут также потребовать
что набор классов сущностей и
классы, которыми нужно управлять, должны быть
полностью перечислены в каждом из
persistence.xml
файлов в Java SE
окружающая среда.
Все классы, содержащиеся в корне
блок персистентности также ищется
для аннотированной управляемой настойчивости
классы и любые метаданные отображения
найденные на них аннотации будут
обработано, или они будут отображены
используя отображение аннотаций по умолчанию.
Если не предполагается, что
аннотированные классы постоянства
содержится в корне
блок персистентности будет включен в
единица сохранения,
exclude-unlisted-classes
элемент
должен быть использован.
exclude-unlisted-classes
элемент
не предназначен для использования в Java SE
окружающая среда.
Теперь, если вы не против переносимости, вы можете использовать расширение провайдера, но я не могу найти что-то похожее на свойство hibernate.archive.autodetection
Hibernate в OpenJPA.
Использование Spring * JPA-интеграция (что позволяет более гибко сканировать путь к классам) - еще один вариант.