IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JPA Java Discussion :

Probleme injection entityManager


Sujet :

JPA Java

  1. #1
    Membre confirmé Avatar de JoloKossovar
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    532
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 532
    Points : 576
    Points
    576
    Par défaut Probleme injection entityManager
    salut tout le monde,
    Je me met a JPA et je rencontre un probleme :

    Je travaille avec une architecture spring + jpa sur une webb app, avec un serveur tomcat 6.
    J'ai simplifié les classes pour plus de lisibilité.
    Mon problème est que dans mon dao mon entityManager est toujours null maigres l injection (qui ne marche pas donc) via spring.

    Mon Dao :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    @Transactional
    public class voitureDAO {
        @PersistenceContext(unitName = "car")
        EntityManager em;
     
    public void addCar() {
            Car carWash = new Car("4L");
            em.persist(warWash);
        }
    }
    Mon fichier persistence.xml (Qui est bel et bien lu):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <?xml version="1.0" encoding="UTF-8"?>
    <persistence xmlns="http://java.sun.com/xml/ns/persistence"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
          http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
      version="1.0">
     
        <persistence-unit name="car" transaction-type="RESOURCE_LOCAL">
        <class>package.voitureDAO</class>
        </persistence-unit>
     
    </persistence>
    Et enfin ma déclaration du entityManagerFactory dans mon appContext.xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <bean id="entityManagerFactory"
    		class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
    		<property name="persistenceUnitName" value="car" />
    		<property name="dataSource" ref="dataSource" />
    		<property name="jpaVendorAdapter" ref="vendorAdapter" />
    		<property name="loadTimeWeaver">
    			<bean
    				class="org.springframework.instrument.classloading.InstrumentationLoadTimeWeaver">
    			</bean>
    		</property>
    	</bean>
    Mon entityManager dans mon dao reste toujours null... Des idées ?

  2. #2
    Membre actif Avatar de Jacobian
    Inscrit en
    Février 2008
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 425
    Points : 245
    Points
    245
    Par défaut
    dans ton entity managerfactory ajouter sa:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <property name="persistenceXmlLocation">
    			<value>classpath:ici chemin de votre fichier persistence.xml</value>
    		</property>

  3. #3
    Membre confirmé Avatar de JoloKossovar
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    532
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 532
    Points : 576
    Points
    576
    Par défaut
    je vais le faire,pour tester, mais ce n'est pas le problème puisque mon fichier persistence.xml est bien lu.

  4. #4
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Bonjour,
    Tu n'as pas déclaré ton DAO en tant que SpringBean, il ne béénficie donc pas de DI.
    Ajoutes @Repository à ton DAO (avant ou après @Transactional)

    Mais sinon, as tu activé les annotations de Spring ? et le scan des beans ?

  5. #5
    Membre confirmé Avatar de JoloKossovar
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    532
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 532
    Points : 576
    Points
    576
    Par défaut
    Ok, je l'ai ajouté, ça ne règle pas le problème. Toujours em qui n'est pas injecté.

  6. #6
    Membre confirmé Avatar de JoloKossovar
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    532
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 532
    Points : 576
    Points
    576
    Par défaut
    Au temps pour moi, c'est good ^^ Merci a vous.

  7. #7
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Citation Envoyé par JoloKossovar Voir le message
    Au temps pour moi, c'est good ^^ Merci a vous.
    Ce serait sympa si tu pouvais montrer l'origine de l'erreur et ce que tu as fait pour corriger celà Comme ça, cette discussion pourrait servir à d'autres personnes.

  8. #8
    Membre confirmé Avatar de JoloKossovar
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    532
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 532
    Points : 576
    Points
    576
    Par défaut
    Oui,
    mais la cause etait tellement idiote et spécifique a mon appli ... que ce n'est pas la peine ^^ Tout marche tres bien comme j'ai posté au début. Pas besoin du @repositery sur la classe DAO d'ailleurs, sauf si on utilise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <bean class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor" />
    j'ajoute aussi que le component-scan est inutile dans la plupart des cas.
    ++

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Web Services] pb injection entityManager dans un web service
    Par touirek dans le forum Spring
    Réponses: 2
    Dernier message: 17/12/2010, 00h58
  2. [Data] Problem injection JPA Spring EntityManagerFactory
    Par promachos dans le forum Spring
    Réponses: 6
    Dernier message: 21/09/2010, 13h33
  3. [EJB3 Entity] Probleme injection de dépendance
    Par manu11 dans le forum Java EE
    Réponses: 1
    Dernier message: 17/11/2009, 02h51
  4. [Struts] probleme injection spring dans une action Struts
    Par otam_otam dans le forum Spring Web
    Réponses: 1
    Dernier message: 03/03/2009, 12h24
  5. JBoss probleme injection EJBTHREE-1289
    Par MaxLaMenaX dans le forum Wildfly/JBoss
    Réponses: 0
    Dernier message: 20/02/2009, 14h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo