0

Spring Data で奇妙な問題が発生しています。

私は2つの異なるプロジェクトを持っています.1つはpostgresにあなたのスキーマを持っています.

最初のプロジェクトでは、任意のエンティティで CRUD を実行でき、すべて正常に機能します。

そして、2番目のプロジェクトでは、最初のプロジェクトの依存関係があり、2番目のプロジェクトのすべてでCRUDを実行し、最初のプロジェクトのすべてをリストできます。しかし、私は最初のプロジェクトの何も保持できません

私はこのラインを投げたらそれを実現します

<import resource="classpath*:applicationContext.xml" />

2番目のアプリケーションのアプリケーションコンテキストの終わりに、最初のプロジェクトのすべてを2番目のプロジェクトに永続化できますが、2番目のプロジェクトのものを永続化することはできません。

そして、この行を 2 番目のアプリケーションの application-context.xml の冒頭に入れると、2 番目のプロジェクトのモデルが正常に維持されます。

これは、2 番目のプロジェクトの完全な XML アプリケーション コンテキストです。

<?xml version="1.0" encoding="UTF-8"?>

<!-- Carregar os dados applicationOrcamento.properties na memória -->

<!-- <context:property-placeholder location="classpath*:applicationOrcamento.properties" 
    ignore-unresolvable="true"/> -->

<import resource="classpath*:applicationContext.xml" /> <!-- this line that i'm having problem Application Context of the first project if this line is here, i can persist anything of the second project, if i put on the end will persist any thing of the first project, but nothing of the second project... -->

<!-- Activates scanning of @Autowired -->
<context:annotation-config />

<context:component-scan
    base-package="br.com.secondProject.package.repository" />

<context:component-scan base-package="br.com.secondProject.package.services" />

<!-- <context:component-scan base-package="br.com.firstProject.package.repository" 
    /> -->

<!-- <context:component-scan base-package="br.com.firstProject.package.services" 
    /> -->

<jpa:repositories base-package="br.com.secondProject.package.repository"
    entity-manager-factory-ref="entityManagerFactoryOrcamento" />

<bean class="org.springframework.orm.hibernate4.HibernateExceptionTranslator" />

<!-- Database -->
<bean id="datasourceOrcamento"
    class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="org.postgresql.Driver" />
    <property name="url"
        value="jdbc:postgresql://localhost:5432/DB?searchpath=second_project" />
    <property name="username" value="postgres" />
    <property name="password" value="123456" />
</bean>

<!-- Entity Manager -->
<bean id="entityManagerFactoryOrcamento"
    class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
    <property name="dataSource" ref="datasourceOrcamento" />
    <property name="persistenceUnitName" value="second-project-pu" />
    <property name="jpaVendorAdapter">
        <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
            <property name="showSql" value="true" />
            <!-- <property name="generateDdl" value="true" /> -->
        </bean>
    </property>
    <property name="packagesToScan" value="br.com.secondProject.package.model" />
    <property name="jpaDialect">
        <bean class="org.springframework.orm.jpa.vendor.HibernateJpaDialect" />
    </property>
</bean>

<!-- Alterar para JTA quando for para produção! -->
<!-- <jee:jndi-lookup jndi-name="java:/prject-ds" id="datasource" resource-ref="true"/> -->

<!-- Transaction Manager -->
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
    <property name="entityManagerFactory" ref="entityManagerFactoryOrcamento" />
</bean>

<tx:annotation-driven />

`

2 番目のアプリケーションの Persistence.xml も最初のプロジェクトのクラスをインポートしています。実際の問題は、最初のプロジェクトのエンティティを 2 番目のプロジェクトに永続化することです。

私はすでにコントローラーを装着しようとしました

@ContextHierarchy({
@ContextConfiguration(locations = { "/applicationContextOrcamento.xml"}), //second Project xml
@ContextConfiguration(locations = { "classpath*:applicationContext.xml" })// first project xml

}))

しかし、うまくいきません...

最初のプロジェクトのエンティティを 2 番目のプロジェクト内に永続化する必要があるだけです

4

0 に答える 0