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

Java EE Discussion :

Mes EJB3 persistent à ne pas persister [EJB3]


Sujet :

Java EE

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Avatar de rozwel
    Inscrit en
    Mars 2002
    Messages
    324
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 324
    Par défaut Mes EJB3 persistent à ne pas persister
    J'ai longtemps bossé avec Spring/Hibernate mais là je démarre avec EJB3 et je galère avec mon setup transactionnel.
    Dans ma couche business j'ai un EJB stateless (donc transactionnel par défaut il me semble) dont une opération fait appel à un autre EJB Stateless (un DAO en l'occurrence). Et ce même DAO utilise l'EntityManager d'Hibernate pour persister. En gros en code, voilà ce que ça donne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    @Stateless
    public class MyServiceImpl implements MyService{
        @EJB
        private MyEntityDao dao;
     
        public myMethod(){
            MyEntity entity = new MyEntity();
            dao.persist(entity);
        }
    }
     
    @Stateless
    public class MyEntityDaoImpl implements MyEntityDao{
        @PersistenceContext
        protected EntityManager entityManager;
     
        public void persist(MyEntity entity){
            entityManager.persist(entity);
        }
    }
    Le tout tourne dans un Weblogic 10.3 avec une datasource Oracle, et démarre sans exception. Maintenant quand je fais un test d'appel sur ma méthode business, j'ai quelques select qui sont faits sur ma DB pour récupérer par exemple l'ID généré pour mon entité dans une séquence, mais je n'ai aucun insert dans le log Hibernate.

    Quelqu'un a une idée? Parce que là je pars à la pêche.

  2. #2
    Membre éclairé
    Avatar de rozwel
    Inscrit en
    Mars 2002
    Messages
    324
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 324
    Par défaut
    J'ai trouvé le problème. Mon persistence.xml était tout mauvais. Ma datasource était configurée comme non-jta-datasource avec un transaction-type à RESOURCE_LOCAL. Une fois que je suis repassé sur une jta-datasource en enlevant l'attribut transaction-type sur persistence-unit (puisque c'est JTA par défaut), et une fois que j'ai ajouté une property Hibernate pour lui indiquer comment faire le lookup dans weblogic, ça a fonctionné beaucoup mieux tout de suite:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <property name="hibernate.transaction.manager_lookup_class"                      value="org.hibernate.transaction.WeblogicTransactionManagerLookup"/>

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

Discussions similaires

  1. Mes objets ne sont pas persistés
    Par JulienZ dans le forum JPA
    Réponses: 1
    Dernier message: 16/08/2009, 14h47
  2. [EJB3 Entity] Persistance qui ne persiste pas ?
    Par ipingu dans le forum Java EE
    Réponses: 3
    Dernier message: 18/11/2008, 14h04
  3. mes _FK ne sont pas persistés dans ma base oracle
    Par mickael.guilbert dans le forum JPA
    Réponses: 4
    Dernier message: 08/02/2008, 11h01
  4. Routage pas persistant
    Par Manumation dans le forum Réseau
    Réponses: 0
    Dernier message: 05/11/2007, 13h40
  5. [Deployment] persistence.xml pas détecté
    Par fisico dans le forum Glassfish et Payara
    Réponses: 1
    Dernier message: 24/08/2007, 21h56

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