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 :

JPA et actualisation des entités


Sujet :

JPA Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 109
    Points : 108
    Points
    108
    Par défaut JPA et actualisation des entités
    Bonjour,

    Je charge une liste de la manière suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    
    @Override	public List<Eleve> listEleves() {
    		List<Eleve> le = em.createQuery("SELECT e FROM Eleve e").getResultList();
    returnle;
    	}
    Si je modifie un élément de la liste directement dans la bd et que je rappelle ma liste, elle ne s'actualise pas.

    Que dois-je faire au niveau de l'EntityManager pour qu'il actualise mes données ?

    Merci

  2. #2
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Ce n'est pas le comportement normal, utiliserais-tu un cache ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 109
    Points : 108
    Points
    108
    Par défaut
    Citation Envoyé par OButterlin Voir le message
    Ce n'est pas le comportement normal, utiliserais-tu un cache ?
    Je croyais que JPA gérait lui-même deux niveaux de cache de 1er et 2ème niveau ?

    J'ai implémenté un DAO avec la méthode suivante pour retourner ma liste:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    @Overridepublic List<Eleve> listEleves() {
    
    
    	List<Eleve> le = em.createQuery("SELECT e FROM Eleve e").getResultList();
    logger.info("---> eleve list  size " + le.size());
    	em.refresh(le); /* je fais un essai ici qui n'est pas concluant !  */	
    returnle;
    	}
    Ma persistance est injectée de la façon suivante:
    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
    22
    23
    24
    25
    26
    27
    public class ConnectionEntityManager {
    
    
    	private static EntityManagerFactory emf;
    @PersistenceContext(unitName = "myPU")
    	private static EntityManager em;
    
    
    	final static Logger logger = LogManager.getLogger(ConnectionEntityManager.class);
    
    
    /**
    	 * Méthode qui va nous retourner notre instance et la créer si elle n'existe
    	 * pas...
    	 * 
    	 * @return
    	 */
    	public static EntityManager getInstance() {
    		if (em == null) {
    			emf = Persistence.createEntityManagerFactory("myPU");
    			em = emf.createEntityManager();
    logger.info("----- Create Entity Manager ");
    		} 
    returnem;
    	}
    }
    J'appelle ensuite depuis le client un ejb qui me retourne le résultat:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
    
    @Stateless
    public class MySessionBean implements MySessionBeanRemote, MySessionBeanLocal, Serializable {
    
    
    public List<Eleve> listeEleves() {
           return DAOFactory.getEleveDAO().listEleves();
    
    
    }
    Si je modifie mes données directement dans la bd, ma liste n'est pas actualisée. Aucune idée pourquoi.

  4. #4
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    JPA (ou plutôt le provider) peut effectivement gérer plusieurs niveaux de cache. Pour le L1, pas de soucis, c'est géré par l'entity manager et sert à garder les instances de la session courante.

    Par contre, le L2 lui, cache des instances entre plusieurs sessions. Pour hibernate, on peut le désactiver comme ça:

    persistence.xml:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <properties>
        ...
        <property name="hibernate.cache.use_second_level_cache" value="false"/>
        ...
    </properties>
    Pour les autres providers, il faut regarder dans la doc.
    "Le plug gros problème des citations trouvées sur internet, c'est qu'on ne peut jamais garantir leur authenticité"

    Confucius, 448 av. J-C

  5. #5
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Il faudrait savoir quelle implémentation de JPA tu utilises, Hibernate et Toplink ne fonctionnent pas de la même façon sur le cache L2.
    Et quelle version également...
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 109
    Points : 108
    Points
    108
    Par défaut
    J'ai essayé pas mal de trucs qui figurent sur ce lien, sans succès !

    https://docs.oracle.com/javaee/6/tut...doc/gkjjj.html

    Quelqu'un aurait-il une solution ?

    merci

  7. #7
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    Oui. Montre-nous ta config du contexte de persistence. Comme indiqué déjà plusieurs fois, cela dépend de l'implémentation utilisée. Implém dont tu ne nous as d'ailleurs pas encore parlé...
    "Le plug gros problème des citations trouvées sur internet, c'est qu'on ne peut jamais garantir leur authenticité"

    Confucius, 448 av. J-C

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 109
    Points : 108
    Points
    108
    Par défaut
    Citation Envoyé par Pill_S Voir le message
    Oui. Montre-nous ta config du contexte de persistence. Comme indiqué déjà plusieurs fois, cela dépend de l'implémentation utilisée. Implém dont tu ne nous as d'ailleurs pas encore parlé...
    Désolé et merci !

    Voilà ma configuration

    persistence.xml

    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
    <?xml version="1.0" encoding="UTF-8"?>
    <persistence version="2.1"
    	xmlns="http://xmlns.jcp.org/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_2_1.xsd">
     
     
    	<persistence-unit name="myPU" transaction-type="JTA">
    		<jta-data-source>jdbc/myDS</jta-data-source>
     
    		<class>ch.myapp.domain.model.Book</class>
    		<class>ch.myapp.domain.model.Cours</class>
    		<class>ch.myapp.domain.model.Eleve</class>
    		<class>ch.myapp.domain.model.Publisher</class>
     
     
    	</persistence-unit>
    </persistence>
    J'initialise ma persistance de la manière suivante au niveau du DAO:

    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
     
     
    public class ConnectionEntityManager {
     
     
    	private static EntityManagerFactory emf;
     
    	@PersistenceContext(unitName = "myPU")
    	private static EntityManager em;
     
     
    public static EntityManager getInstance() {
    		if (em == null) {
    			emf = Persistence.createEntityManagerFactory("myPU");
    			em = emf.createEntityManager();
     
    			logger.info("----- Create Entity Manager ");
    		}
    		return em;
    	}
    Voilà !

  9. #9
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    Euh alors déjà un entitymanager static, qui plus est contenant à la fois une annotation @PersistenceContext + une factory method, c'est louche... même très louche.

    Sinon, on ne connait toujours pas l'implém. (Hibernate, Toplink, etc, ...) puisque cette partie n'apparait pas explicitement dans ton persistence unit... faudrait voir le classpath...

    A tout hasard, essaie d'ajouter le noeud que je t'ai indiqué plus haut (si c'est du hibernate).
    "Le plug gros problème des citations trouvées sur internet, c'est qu'on ne peut jamais garantir leur authenticité"

    Confucius, 448 av. J-C

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 109
    Points : 108
    Points
    108
    Par défaut
    Citation Envoyé par Pill_S Voir le message
    Euh alors déjà un entitymanager static, qui plus est contenant à la fois une annotation @PersistenceContext + une factory method, c'est louche... même très louche.

    Sinon, on ne connait toujours pas l'implém. (Hibernate, Toplink, etc, ...) puisque cette partie n'apparait pas explicitement dans ton persistence unit... faudrait voir le classpath...

    A tout hasard, essaie d'ajouter le noeud que je t'ai indiqué plus haut (si c'est du hibernate).
    Alors ce n'est pas du hibernate. J'aimerais avoir l'entitymanager au niveau du DAO, et s'il est défini ailleurs que dans une EJB, l'entitymanager est nul, d'où la factory.
    Que pourrais-je faire d'autre, sans avoir à définir cette persistence au niveau de l'ejb ?

    merci



  11. #11
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 936
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 936
    Points : 4 356
    Points
    4 356
    Par défaut
    Rafraichissement des collections :

    problématique 1 : rafraichissement des objets contenus dans la collection, un autre "utilisateur" modifie le contenu des objets
    -> cela concerne la stratégie de locking choisie : optimistic ou pessimistic ?
    avez-vous un @Version dans vos entités ?

    problématique 2 : rafraichissement de la liste elle-même : un autre "utilisateur" ajoute des nouveaux objets, en supprime, change leur ordre (dans le cas où la collection est une liste et non pas un bag)
    (où le champ "order" est mis et comment il est mappé ouvrira encore quelques combinaisons...)

    -> soit la liste est elle-même contenue (appartient à) dans un autre objet (OneToMany (avec ou sans table d'intersection), ManyToMany (avec ou sans entité intersection))
    -> soit la liste est simplement le résultat d'un query

    Vous ajoutez à cela la stratégie de gestion des caches, l'ORM choisi, et vous aurez un beau tableau de combinaisons à remplir avec ce qu'il faut faire dans chaque situation...
    Et comme on peut l'imaginer : il n'y a pas "une" solution, et celle-ci sera rarement totalement indépendante de l'usage particulier de votre application.

  12. #12
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    Citation Envoyé par Fr@ncky Voir le message
    Alors ce n'est pas du hibernate. J'aimerais avoir l'entitymanager au niveau du DAO, et s'il est défini ailleurs que dans une EJB, l'entitymanager est nul, d'où la factory.
    Que pourrais-je faire d'autre, sans avoir à définir cette persistence au niveau de l'ejb ?

    merci
    L'EM doit effectivement dans le DAO, ne doit pas être static, et doit contenir l'annotation @PersistenceContext. S'il est nul, c'est qu'il y a un problème de config, probablement au niveau du container (dont on ne sait rien non plus, on ne configure pas un tomcat de la même façon qu'un websphere...)

    L'entitymanagerfactory ne doit pas être défini ou référencé dans le code applicatif. C'est au container de fournir un EntityManager, pas à toi de le créer.
    "Le plug gros problème des citations trouvées sur internet, c'est qu'on ne peut jamais garantir leur authenticité"

    Confucius, 448 av. J-C

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 109
    Points : 108
    Points
    108
    Par défaut
    Citation Envoyé par Pill_S Voir le message
    L'EM doit effectivement dans le DAO, ne doit pas être static, et doit contenir l'annotation @PersistenceContext. S'il est nul, c'est qu'il y a un problème de config, probablement au niveau du container (dont on ne sait rien non plus, on ne configure pas un tomcat de la même façon qu'un websphere...)

    L'entitymanagerfactory ne doit pas être défini ou référencé dans le code applicatif. C'est au container de fournir un EntityManager, pas à toi de le créer.
    merci à vous deux ! Mon container est glassfish.

    Pour vous expliquer où j'en suis:

    mon projet est divisée selon les composants suivants:
    1) domain (contient mes dao et mes entité)
    2) ejb (contient la logique applicative)
    3) war (webclient)

    J'ai réécrit mon dao de la façon suivante et je n'ai plus le problème de persistance nulle si je le déclare comme stateless bean

    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
    22
     
     
     
    @Stateless
    public class EleveDAO {
     
     
    @PersistenceContext(unitName = "myPU")
    private EntityManager em;
     
     
    public List<Eleve> listEleves() {
     
     
    	List<Eleve> results = em.createQuery("SELECT c FROM Eleve c").getResultList();
     
     
    	logger.info("---> eleve list  size " + results.size());
     
     
    	return results;
    }
    J'utilise maintenant ce dao en l'injectant dans mon EJB de la façon suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    	
        @Stateless
    public class MySessionBean implements MySessionBeanRemote, MySessionBeanLocal, Serializable {
    
    
        // Injection  EJB (Session Bean Stateless)
    	@EJB
        private EleveDAO  eleveDAO;
      
    	public List<Eleve> listeEleves() {
    		return	eleveDAO.listEleves();
    	}
    Puis au niveau du client injection du bean,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    WebServlet("/MyServlet")
    public class MyServlet extends HttpServlet {
    	public static final String ATT_MESSAGES = "eleve";
    	public static final String VUE = "/WEB-INF/eleve.jsp";
     
     
    	private static final long serialVersionUID = 1L;
     
    	@EJB
    	private MySessionBean monBean;
    Maintenant, je ne peux plus déployer mon appl avec l'erreur suivante:
    E
    rror occurred during deployment: Exception while deploying the app [my_test_ear-0.0.1-SNAPSHOT] : Cannot resolve reference [Remote ejb-ref name=ch.myapp.bean.MySessionBean/eleveDAO,Remote 3.x interface =ch.myapp.domain.dao.EleveDAO,ejb-link=null,lookup=,mappedName=,jndi-name=,refType=Session] because there are [2] ejbs in the application with interface ch.myapp.domain.dao.EleveDAO. Some of the possible causes: 1. The EJB bean class was packaged in an ear lib library (or through any other library mechanism which makes the library visible to all component modules), this makes all the component modules include this bean class indirectly. 2. The EJB bean class was packaged in a component module which references the EJB, either directly or indirectly through Manifest, WEB-INF/lib. The EJB bean class should only be packaged in the declaring ejb module and not the referencing modules. The referencing modules should only include EJB interfaces.. Please see server.log for more details.
    Je commence à m'arracher les cheveux là!

    Mon approche pour implémenter l'appli est-elle incorrecte?

    Merci

  14. #14
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    Oui, c'est correct.

    Je pense qu'il faut lire correctement le message et agir en conséquence. Faire les vérifs sur le serveur (où la classe EleveDao est-elle déployée, dans combien de jar, etc.) voir faire un gros cleanup/full rebuild.

    Mais tu t'approches
    "Le plug gros problème des citations trouvées sur internet, c'est qu'on ne peut jamais garantir leur authenticité"

    Confucius, 448 av. J-C

  15. #15
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 109
    Points : 108
    Points
    108
    Par défaut
    Citation Envoyé par Pill_S Voir le message
    Oui, c'est correct.

    Je pense qu'il faut lire correctement le message et agir en conséquence. Faire les vérifs sur le serveur (où la classe EleveDao est-elle déployée, dans combien de jar, etc.) voir faire un gros cleanup/full rebuild.

    Mais tu t'approches
    ah ah ! merci !

    Pour cette histoire de factory pour la persistance, j'avais en fait suivi cet exemple:
    https://gerardnico.com/lang/java/jpa_dao#interface

  16. #16
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    Citation Envoyé par Fr@ncky Voir le message
    Pour cette histoire de factory pour la persistance, j'avais en fait suivi cet exemple:
    mouais... même si ça peut marcher, je suis pas vraiment fan des transactions gérées manuellement...

    et y'a quelques lignes de code vraiment discutables qui me font dire que c'est pas forcément l'exemple à suivre
    "Le plug gros problème des citations trouvées sur internet, c'est qu'on ne peut jamais garantir leur authenticité"

    Confucius, 448 av. J-C

  17. #17
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 109
    Points : 108
    Points
    108
    Par défaut
    Bon,
    j'ai essayé pas mal de trucs mais je me trouve toujours avec cette erreur (j'utilise maven)


    Complete MessageException while deploying the app [my_test_ear-0.0.1-SNAPSHOT] : Cannot resolve reference [Remote ejb-ref name=ch.myapp.bean.MySessionBean/eleveDAO,Remote 3.x interface =ch.myapp.domain.dao.EleveDAO,ejb-link=null,lookup=,mappedName=,jndi-name=,refType=Session] because there are [2] ejbs in the application with interface ch.myapp.domain.dao.EleveDAO. Some of the possible causes: 1. The EJB bean class was packaged in an ear lib library (or through any other library mechanism which makes the library visible to all component modules), this makes all the component modules include this bean class indirectly. 2. The EJB bean class was packaged in a component module which references the EJB, either directly or indirectly through Manifest, WEB-INF/lib.
    The EJB bean class should only be packaged in the declaring ejb module and not the referencing modules. The referencing modules should only include EJB interfaces.
    Je ne comprends pas vraiment le problème.
    mon domain.jar (qui contient mes entité et mes ejb dao) se trouve bien uniquement sous le répertoire lib de mon ear et nulle part ailleurs.
    ce domain.jar doit-il aller dans la partie ejb ??

    Nom : aaa.png
Affichages : 334
Taille : 23,2 Ko

  18. #18
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 109
    Points : 108
    Points
    108
    Par défaut
    Je suis arrivé plus loin et ai pu déployer mon ear sur glassfish.

    Je vois mes ejbs deployés, mais malgré l'annotation @stateless mon em reste nul !

    Nom : aabb.png
Affichages : 398
Taille : 203,9 Ko

    Qui peut m'aider SVP?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    @Stateless
    public class EleveDAOImpl implements EleveDAO {
     
     
    	@PersistenceContext(unitName = "myPU")
    	private EntityManager em;

  19. #19
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    Désolé, chui loin d'être expert en glassfish...

    En websphere, dans mon souvenir, on mettait @PersistenceContext, peut-être @Inject, quelques configs dans la console, un ou deux jndi-lookup et roule ma poule...

    Active les logs en mode verbeux max, regarde dans la doc de glassfish, etc... il faut peut-être explicitement activer JPA et configurer la datasource depuis l'interface d'admin... étonnant d'ailleurs que tu ne nous ait pas montré comment tu initialise la datasource...
    "Le plug gros problème des citations trouvées sur internet, c'est qu'on ne peut jamais garantir leur authenticité"

    Confucius, 448 av. J-C

  20. #20
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 109
    Points : 108
    Points
    108
    Par défaut
    Citation Envoyé par Pill_S Voir le message
    Désolé, chui loin d'être expert en glassfish...
    étonnant d'ailleurs que tu ne nous ait pas montré comment tu initialise la datasource...
    Hello ,

    j'initialise la datasource comme ressource jdbc sur le server glassfish et y accède via le persistence.xml. Et roule ma poule
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <persistence-unit name="myPU" transaction-type="JTA"><jta-data-source>jdbc/myDS</jta-data-source>

Discussions similaires

  1. netbeans: génération de la bd après création des entités jpa
    Par lamabalo dans le forum Persistance des données
    Réponses: 0
    Dernier message: 07/10/2008, 20h55
  2. où insérer le code des entités jpa
    Par cool dans le forum JPA
    Réponses: 4
    Dernier message: 24/04/2008, 17h25
  3. Initialisation des Entités JPA
    Par bouba dans le forum JPA
    Réponses: 2
    Dernier message: 27/09/2007, 18h09
  4. [CR7]Actualisation des données depuis VB
    Par elifqaoui dans le forum SDK
    Réponses: 4
    Dernier message: 24/11/2003, 13h44
  5. [MSXML] Comment empécher la conversion des entités ?
    Par nima dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 08/11/2002, 14h14

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