Загрузка объекта 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

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


    
    
    
        
            
            
            
        
    
    

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


    
        
        
        

....

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 {

7
задан Hrishikesh 29 February 2012 в 18:46
поделиться