Загрузка объекта JPA из внешнего файла Jar

У меня есть настройка проекта, где я сконфигурировал проект и упаковал модуль в файл jar, который включается в основной проект, когда мы создаем войну и разворачиваем ее. Проблема, с которой я сталкиваюсь, состоит в том, что у меня есть Entity, присутствующий в модуле, который не загружается, когда контейнер JPA EntityManagerFactory для unitName создается во время запуска.

Основной вопрос, который у меня есть, заключается в том, не ищет ли EntityManager файл persistence.xml, затем загружает указанные свойства, а затем сканирует все пакеты на наличие аннотации @Entity?

Любое понимание того, как это работает и как я могу решить это было бы здорово.

Я нашел эту ссылку, и она упоминает о создании отдельных модулей персистентности, но здесь мне не нужен отдельный блок персистентности. Мне просто нужен модуль, чтобы вернуться к родительскому проекту и загрузить сущность и любые другие классы @Resource, @Component, что он делает из-за контекста: компонентное сканирование и конфигурация аннотации.

http://javathoughts.capesugarbird.com/2009/02/jpa-and-multiple-persistence-units.html

Вот мой код / конфигурация

<bean id="entityManagerFactory"  class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <property name="persistenceUnitName" value="LineManagement" />
    <property name="jpaVendorAdapter">
        <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
            <property name="generateDdl" value="false" />
            <property name="showSql" value="false" />
            <property name="databasePlatform" ref="cpsHibernateDialectClassName" />
        </bean>
    </property>
    <property name="beanName" value="entityManager"></property>
</bean>

определение EnitityManagerFactory для запуска Entity Manager.

<persistence-unit name="LineManagement" transaction-type="RESOURCE_LOCAL">
    <properties>
        <property name="hibernate.id.new_generator_mappings" value="true" />
        <property name="hibernate.current_session_context_class" value="thread" />
        <property name="hibernate.default_batch_fetch_size" value="200" />

....

Persistence.xml, который определяет кэш второго уровня и другие свойства гибернации.

Затем модуль, который имеет сущность.

import javax.persistence.Entity;


@Entity
@Table(name = IntegrationEvent.TABLE_NAME, uniqueConstraints =    @UniqueConstraint(columnNames = "INTGRTN_EVNT_QUEUE_SK"))
@GenericGenerator(name = "UUID_GEN", strategy = "org.hibernate.id.UUIDHexGenerator",     parameters = { @Parameter(name = "separator", value = "-") })
public class IntegrationEvent implements Serializable {

....}

Примечание: сущность находится в другом пакете, чем родительский, так как это отдельный модуль.

Сущность, которая прекрасно загружается в основном проекте.

package com.parent.line.entity;

import javax.persistence.Entity;

@Entity
@Table(name = "ACCOUNT")
@Cacheable(true)
public class Account
  implements LMLookupTypeEntityByDivision, Serializable, Comparable<Account> {

Ответы на вопрос(3)

Ваш ответ на вопрос