0

spring data jpa with を使用して@Transaction、2 つの永続的なユニット名を持つサービスに複数のトランザクション (データベース) を実装しています。Jboss 6.4 EAP にデプロイする

春のxmlが含まれています

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jpa="http://www.springframework.org/schema/data/jpa"
       xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
       xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:jee="http://www.springframework.org/schema/jee"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
             http://www.springframework.org/schema/beans/spring-beans.xsd
             http://www.springframework.org/schema/data/jpa
             http://www.springframework.org/schema/data/jpa/spring-jpa.xsd
             http://www.springframework.org/schema/tx 
             http://www.springframework.org/schema/tx/spring-tx-3.1.xsd
             http://www.springframework.org/schema/context 
             http://www.springframework.org/schema/context/spring-context-3.1.xsd
             http://www.springframework.org/schema/mvc
             http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd
             http://www.springframework.org/schema/jee 
             http://www.springframework.org/schema/jee/spring-jee-3.1.xsd">

    <context:annotation-config />
    <tx:annotation-driven />
    <context:component-scan base-package="com.test.demo.domain.service" />
    <context:component-scan base-package="com.test.demo.domain" />
    <bean id="entityManagerFactory"
              class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
        <property name="persistenceUnitName" value="demo-domain" />
        <property name="jpaVendorAdapter">
            <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"></bean>
        </property>
        <property name="persistenceProviderClass" value="org.hibernate.ejb.HibernatePersistence" />
    </bean>

    <bean id="entityManagerFactoryMeta"
              class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
        <property name="persistenceUnitName" value="demo-meta" />
        <property name="jpaVendorAdapter">
            <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"></bean>
        </property>
        <property name="persistenceProviderClass" value="org.hibernate.ejb.HibernatePersistence" />
    </bean>
    <bean id="persistenceExceptionTranslationPostProcessor"
              class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor" />

    <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
        <property name="entityManagerFactory" ref="entityManagerFactory" />
        <qualifier value="demoadmin"/>
    </bean>
    <bean id="transactionManagerMeta" class="org.springframework.orm.jpa.JpaTransactionManager">
        <property name="entityManagerFactory" ref="entityManagerFactoryMeta" />
        <qualifier value="demoappmeta"/>
    </bean>

    <jpa:repositories base-package="com.test.demo.domain.repository" />

</beans>

以下は私のサービスの詳細です

@Named(ServerConstants.SERVICE_DRAG_DROP)
**@Transactional("demoappmeta")**
public class DragDropService {
    private static final Logger LOG = LoggerFactory.getLoggerFactory().getDomainLogger(ServerConstants.LOGGER_DOMAIN, DragDropService.class.toString());

    @Inject
    private TbAsmiDragDropRepository dragDropRepo;

    public void createDragDrop(Message pMessage){
        JSONObject requestJson = pMessage.getRequestObject().getRequestJson();
        LOG.debug("inside createDragDrop() - Request : "+requestJson);

Jboss ではデプロイできません。次の例外が発生します。

原因: org.springframework.beans.factory.BeanCreationException: フィールドを自動配線できませんでした: プライベート com.test.demo.domain.repository.TbAsmiDragDropRepository com.test.demo.domain.service.DragDropService.dragDropRepo; ネストされた例外は org.springframework.beans.factory.BeanCreationException: 'tbAsmiDragDropRepository' という名前の Bean の作成中にエラーが発生しました: init メソッドの呼び出しに失敗しました。ネストされた例外は java.lang.IllegalArgumentException: Not an managed type: クラス com.test.demo.domain.entity.TbAsmiDragDrop です

足りないもの、間違っているところがあればアドバイスお願いします

4

1 に答える 1

0

属性 entity-manager-factory-ref="en​​titymanagerfactoryrefname" を設定するだけで解決策が見つかりました

<jpa:repositories base-package="com.test.demo.domain.repository" entity-manager-factory-ref="entitymanagerfactoryrefname" />
于 2016-08-01T12:02:01.747 に答える