2014-02-13 4 views
1

Я работаю с мавена на весенне-данных, яровой безопасности, JPA, зимуют проект:Maven модуль - сохранение потерял

В моем проекте (типа ПОМ) у меня есть все зависимости, определенные в файле POM -> OK В первом модуле (тип банка), у меня есть все пакеты: - Hibernate пакет - пакет хранилище - пакет услуг - и т.д ...

Во втором модуле (война типа), у меня есть: - контроллер - конфигурация базы данных - Конфигурация безопасности - и т. д.

В POM этого второго модуля я добавил первую зависимость от модуля.

Когда я запускаю этот второй модуль я получил эту ошибку:

java.lang.IllegalArgumentException: Not an managed type: class com.mc.appcontacts.domain.hibernate.User 

Но если я переместить пакет спящего режима от первого модуля второго модуля, это работает!

Возможно ли сохранить пакет hibernate в первом модуле?

Поскольку я добавляю другие модули, которые зависят от первого модуля (например, второго в моем примере), я должен дублировать пакет спящего режима во всех новых модулях ... не очень круто (в основном, если есть изменения в структура базы данных)

Благодарим за помощь

+0

Вы можете разместить структуру проекта в дереве ascii http://stackoverflow.com/questions/1581559/ascii-library-for-creating-pretty-directory-trees и какие файлы вы перемещаете, что вызывает проблему. –

+0

Это нужно сделать. Что-то еще не так. –

ответ

0

ДА!

Я нашел!

Я возвращаюсь: В моей applicationContext.xml, я импортировать базы данных ресурса:

<!-- included Spring contexts --> 
<import resource="classpath:META-INF/contacts/contexts/db_context.xml"/> 

В db_context.xml, я объявляю JPA EntityManagerFactory (я имею в виду persistence.xml):

<!-- Declare a JPA entityManagerFactory --> 
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> 
    <property name="persistenceXmlLocation" value="classpath:META-INF/contacts/hibernate/persistence.xml" /> 
    <property name="persistenceUnitName" value="hibernatePersistenceUnit" /> 
    <property name="jpaVendorAdapter" ref="hibernateVendor" /> 
</bean> 

В persistence.xml, я определить отображение файла (ORM.xml):

<?xml version="1.0" encoding="UTF-8"?> 
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="1.0"> 
<persistence-unit name="hibernatePersistenceUnit" transaction-type="RESOURCE_LOCAL"> 
<properties> 
    <property name="hibernate.hbm2ddl.auto" value="update" /> 
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect" /> 
     ..... 
</properties> 
<mapping-file>META-INF/contacts/hibernate/orm.xml</mapping-file> 
</persistence-unit> 
</persistence> 

В этом orm.xml файле, я не определить .... ничего:

<?xml version="1.0" encoding="UTF-8"?> 
<entity-mappings version="2.0" xmlns="http://java.sun.com/xml/ns/persistence/orm" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm http://java.sun.com/xml/ns/persistence/orm_2_0.xsd"> 
<persistence-unit-metadata> 
    <persistence-unit-defaults> 
    </persistence-unit-defaults> 
</persistence-unit-metadata> 
    </entity-mappings> 

, но это работает, если нет модуля Maven (только проект Maven (со всеми пакетами и конф файлов) или если спящем пакет присутствует в каждом модуле!

Так что это мой новый orm.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<entity-mappings version="2.0" xmlns="http://java.sun.com/xml/ns/persistence/orm" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm http://java.sun.com/xml/ns/persistence/orm_2_0.xsd"> 

<package>com.mc.appcontacts.domain.hibernate</package> 

<entity class="Client"> 
    <table name="client" /> 
</entity> 
<entity class="Contact"> 
    <table name="contact" /> 
</entity> 
<entity class="SystemUser"> 
    <table name="system_user" /> 
</entity> 
<entity class="User"> 
    <table name="user" /> 
</entity> 
<entity class="Userlogin"> 
    <table name="userlogin" /> 
</entity> 
<entity class="Userauth"> 
    <table name="userauth" /> 
</entity> 
<!-- <persistence-unit-metadata> 
    <persistence-unit-defaults> 
    </persistence-unit-defaults> 
</persistence-unit-metadata> --> 
    </entity-mappings> 

И это работает с моим спящем пакетом только определенным в модуле ContactCore!

Смежные вопросы