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 :

Récupérer liste d'éléments persistés


Sujet :

JPA Java

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 19
    Par défaut Récupérer liste d'éléments persistés
    Bonjour à tous !

    Je suis sur un projet wicket et je fais pour l'instant persister des éléments à l'init. Pour tester la récupération d'un de ces éléments je lance la méthode "findClientEntities()", qui doit me retourner une liste de toutes les entités .Seulement ça merde et j'ai un joli message d'erreur :

    ATTENTION: failed org.mortbay.jetty.plugin.Jetty6PluginWebAppContext@4a32ef2d{/SafeDriving,/home/GiZeus/NetBeansProjects/SafeDriving/src/main/webapp}: java.lang.AbstractMethodError: org.hibernate.ejb.EntityManagerImpl.getCriteriaBuilder()Ljavax/persistence/criteria/CriteriaBuilder;
    2 juin 2011 16:06:41 org.mortbay.log.Slf4jLog warn
    ATTENTION: failed ContextHandlerCollection@774096e6: java.lang.AbstractMethodError: org.hibernate.ejb.EntityManagerImpl.getCriteriaBuilder()Ljavax/persistence/criteria/CriteriaBuilder;
    2 juin 2011 16:06:41 org.mortbay.log.Slf4jLog warn
    ATTENTION: failed HandlerCollection@31731334: java.lang.AbstractMethodError: org.hibernate.ejb.EntityManagerImpl.getCriteriaBuilder()Ljavax/persistence/criteria/CriteriaBuilder;
    2 juin 2011 16:06:41 org.mortbay.log.Slf4jLog warn
    GRAVE: Error starting handlers
    java.lang.AbstractMethodError: org.hibernate.ejb.EntityManagerImpl.getCriteriaBuilder()Ljavax/persistence/criteria/CriteriaBuilder;
    at com.safedriving.dao.ClientJpaController.findClientEntities(ClientJpaController.java:157)
    at com.safedriving.dao.ClientJpaController.findClientEntities(ClientJpaController.java:147)
    at com.safedriving.SafeDrivingApplication.checkDB(SafeDrivingApplication.java:73)
    at com.safedriving.SafeDrivingApplication.init(SafeDrivingApplication.java:53)
    at org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:726)
    at org.mortbay.jetty.servlet.FilterHolder.doStart(FilterHolder.java:97)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
    at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:713)
    at org.mortbay.jetty.servlet.Context.startContext(Context.java:140)
    at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1282)
    at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:518)
    at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:499)
    at org.mortbay.jetty.plugin.Jetty6PluginWebAppContext.doStart(Jetty6PluginWebAppContext.java:115)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
    at org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152)
    at org.mortbay.jetty.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:156)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
    at org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
    at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
    at org.mortbay.jetty.Server.doStart(Server.java:224)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
    at org.mortbay.jetty.plugin.Jetty6PluginServer.start(Jetty6PluginServer.java:132)
    at org.mortbay.jetty.plugin.AbstractJettyMojo.startJetty(AbstractJettyMojo.java:454)
    at org.mortbay.jetty.plugin.AbstractJettyMojo.execute(AbstractJettyMojo.java:396)
    at org.mortbay.jetty.plugin.AbstractJettyRunMojo.execute(AbstractJettyRunMojo.java:210)
    at org.mortbay.jetty.plugin.Jetty6RunMojo.execute(Jetty6RunMojo.java:184)
    at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490)
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694)
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandaloneGoal(DefaultLifecycleExecutor.java:569)
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:539)
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387)
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348)
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328)
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138)
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:362)
    at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:616)
    at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
    at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
    at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
    at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
    La DAO est générée par Netbeans, je n'ai qu'à créer les pojo annotés pour lui dire quoi faire. Je vous mets ci-dessous le persistence.xml, la classe Client et son contrôleur DAO :

    Persistence.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlnssi="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_0.xsd">
    <persistence-unit name="safeDriving-PU" transaction-type="RESOURCE_LOCAL">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <class>com.safedriving.beans.Agence</class>
    <class>com.safedriving.beans.Calendrier</class>
    <class>com.safedriving.beans.Formule</class>
    <class>com.safedriving.beans.HistoriqueClient</class>
    <class>com.safedriving.beans.Lieu</class>
    <class>com.safedriving.beans.Offre</class>
    <class>com.safedriving.beans.Offre2Formule</class>
    <class>com.safedriving.beans.PanierClient</class>
    <class>com.safedriving.beans.Partenaire</class>
    <class>com.safedriving.beans.SessionFormation</class>
    <class>com.safedriving.beans.Vehicule</class>
    <class>com.safedriving.beans.Vehicule2Session</class>
    <class>com.safedriving.beans.personnes.Client</class>
    <class>com.safedriving.beans.personnes.Commercial</class>
    <class>com.safedriving.beans.personnes.Direction</class>
    <class>com.safedriving.beans.personnes.Formateur</class>
    <properties>
    <!-- Autodétection des classes à persister -->
    <!--
    <property name="hibernate.archive.autodetection" value="class, hbm"/>
    -->
    <!-- connexion JDBC -->
    <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
    <property name="hibernate.connection.url" value="jdbc:mysql://localhost/safeDriving"/>
    <property name="hibernate.connection.username" value="root"/>
    <property name="hibernate.connection.password" value="root"/>
    <!-- création automatique du schéma -->
    <property name="hibernate.hbm2ddl.auto" value="validate"/>
    <!-- dialecte -->
    <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLInnoDBDialect"/>
    </properties>
    </persistence-unit>
    </persistence>
    Client.java
    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    @Entity
    //@UniqueConstraint(columnNames={})
    public class Client implements Serializable{
     
        @Id
        @GeneratedValue(strategy=GenerationType.AUTO)
        protected int id;
     
        @Version
        protected Long version;
     
        @Column(length=20)
        protected String login;
     
        @Column(length=50)
        protected String password;
     
        @Column(length=32, nullable=false)
        protected String nom;
     
        @Column(length=32, nullable=false)
        protected String prenom;
     
        @Column(length=3, nullable=false)
        protected String sexe;
     
        @Temporal(javax.persistence.TemporalType.DATE)
        protected Date naissance;
     
        @Column(length=60, nullable=false)
        protected String adresse;
     
        @Column(length=32, nullable=false)
        protected String ville;
     
        @Column(length=15, nullable=false)
        protected String telephone;
     
        @Column(length=50, nullable=false)
        protected String email;
     
        @ManyToOne
        @JoinColumn(name="idAgenceClient", referencedColumnName="id")
        private Agence agence;
     
        @Temporal(javax.persistence.TemporalType.DATE)
        @Column(nullable=false)
        private Date dateInscription;
     
        @Temporal(javax.persistence.TemporalType.DATE)
        @Column(nullable=true)
        private Date dateCodeRoute;
     
        @ManyToOne
        @JoinColumn(name="idCommercialClient", referencedColumnName="id")
        private Commercial commercial;
     
        @ManyToMany
        @JoinTable(name="HistoriqueClient", joinColumns=@JoinColumn(name="idClientHistorique"),
                    inverseJoinColumns=@JoinColumn(name="idSessionFormationHistorique"))
        private List<SessionFormation> sessionsFormation;
     
        public Client(){
        }
    // constructeur complet + accesseurs
    Controleur 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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    public class ClientJpaController {
     
        public ClientJpaController() {
            emf = Persistence.createEntityManagerFactory("safeDriving-PU");
        }
        private EntityManagerFactory emf = null;
     
        public EntityManager getEntityManager() {
            return emf.createEntityManager();
        }
    //...
     
        public List<Client> findClientEntities() {
            return findClientEntities(true, -1, -1);
        }
     
        public List<Client> findClientEntities(int maxResults, int firstResult) {
            return findClientEntities(false, maxResults, firstResult);
        }
     
        private List<Client> findClientEntities(boolean all, int maxResults, int firstResult) {
            EntityManager em = getEntityManager();
            try {
                CriteriaQuery cq = em.getCriteriaBuilder().createQuery();
                cq.select(cq.from(Client.class));
                Query q = em.createQuery(cq);
                if (!all) {
                    q.setMaxResults(maxResults);
                    q.setFirstResult(firstResult);
                }
                return q.getResultList();
            } finally {
                em.close();
            }
        }
    Je suis en Java EE 6, choix effectué en raison de la DAO générée dans cette version.

    Merci d'avance pour votre aide.

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 19
    Par défaut
    Un petit up

Discussions similaires

  1. Réponses: 15
    Dernier message: 02/05/2015, 17h21
  2. Réponses: 2
    Dernier message: 21/08/2013, 15h13
  3. Réponses: 2
    Dernier message: 30/08/2007, 09h12
  4. Récupérer le Nième élément d'une liste chaînée
    Par decoy Octopus dans le forum Pascal
    Réponses: 3
    Dernier message: 03/11/2006, 18h03
  5. [Forms] : liste d'éléments
    Par JuRu dans le forum Forms
    Réponses: 3
    Dernier message: 01/06/2004, 12h18

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