WebHU - Programozási kérdések és válaszok

Spring data jpa + Spring Transaction több adatbázishoz

Több tranzakciót (adatbázist) valósítok meg a szolgáltatásomhoz tavaszi adatok jpa használatával, @Transaction-vel, két állandó egységnévvel. És telepítés Jboss 6.4 EAP-ben

tavaszi xml tartalmazza

<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>

Az alábbiakban a szolgáltatásom adatait találja

@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);

A Jbossban nem tudom telepíteni, a következő kivételt kapom:

Oka: org.springframework.beans.factory.BeanCreationException: Nem sikerült az automatikus vezetékezés mező: private com.test.demo.domain.repository.TbAsmiDragDropRepository com.test.demo.domain.service.DragDropService.dragDropRepo; beágyazott kivétel: org.springframework.beans.factory.BeanCreationException: Hiba a 'tbAsmiDragDropRepository' nevű komponens létrehozásakor: Az init metódus meghívása nem sikerült; A beágyazott kivétel a java.lang.IllegalArgumentException: Nem kezelt típus: class com.test.demo.domain.entity.TbAsmiDragDrop

Ha valami hiányzik, vagy valami nem stimmel, kérem jelezze


Válaszok:


1

Megtaláltam a megoldást, csak be kell állítanunk az entity-manager-factory-ref="entitymanagerfactoryrefname" attribútumot

<jpa:repositories base-package="com.test.demo.domain.repository" entity-manager-factory-ref="entitymanagerfactoryrefname" />
01.08.2016
Új anyagok

A rádiógomb ellenőrzött eseményének használata a jQueryben
Ebben a cikkben látni fogjuk, hogyan kell dolgozni a jquery választógombbal ellenőrzött eseményeivel. A választógombok HTML gombok, amelyek segítenek kiválasztani egyetlen értéket egy csoportból...

Körkörös függőségek megoldása terraformban adatforrásokkal – lépésről lépésre
Mi az a körkörös függőségek Dolgozzunk egy egyszerű eseten, amikor az SQS-sor és az S3-vödör közötti körkörös függőség problémája van egy egymástól függő címkeérték miatt. provider..

Miért érdemes elkezdeni a kódolást 2023-ban?
01100011 01101111 01100100 01100101 — beep boop beep boop Világunk folyamatosan fejlődik a technológia körül, és naponta fejlesztenek új technológiákat a valós problémák megoldására. Amint..

🎙 Random Noise #2  – Örökbefogadás és hit
az analitika íratlan világának gondozása Szeretné, hogy ezek a frissítések a postaládájába kerüljenek? Iratkozzon fel itt . "Ha önvezető autókat gyártanak, akkor mi miért ne..

A legrosszabb politika és prediktív modellek májátültetésre jelöltek számára az Egyesült Államokban
A máj (vagy óangolul lifer) az emberi test legnehezebb belső szervére utal, amely csendesen működik a nap 24 órájában. Mit csinál a máj? 500 feladatot hajt végre a szervezet egészségének..

5 webhely, amely 2022-ben fejleszti front-end fejlesztői készségeit
Frontendmentor.io A tényleges projektek létrehozásával a Frontendmentor.io segítséget nyújt a front-end kódolási képességeinek fejlesztésében. A kódolást azután kezdheti meg, hogy..

Mikor kell használni a Type-t az interfészhez képest a TypeScriptben?
A TypeScript a JavaScript gépelt szuperkészlete, amely statikus gépelést ad a nyelvhez. Ez megkönnyíti a robusztus és karbantartható kód írását azáltal, hogy a hibákat a fordítási időben..