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

Persistance des données Java Discussion :

Hibernate et SQLite


Sujet :

Persistance des données Java

  1. #1
    Membre expérimenté

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 122
    Par défaut Hibernate et SQLite
    Bonjour tout le monde!

    Dernièrement, j'ai tenté de créer une application desktop (application lourde) en utilisant une BD SQLite!
    Pour la persistence, j'ai choisi "Hibernate". Malheureusement je n'y suis jamais arriver!
    L'erreur que je reçoit est le suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Exception in thread "main" java.lang.NoSuchMethodError: org.hibernate.cfg.Environment.verifyProperties(Ljava/util/Map;)V
    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
    19
    20
    21
     
    <?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_2_0.xsd"
    	version="2.0">
        <persistence-unit name="pu-sqlite-jpa">		
            <provider>org.hibernate.ejb.HibernatePersistence</provider>		
            <class>entity.Action</class>
            <class>entity.Element</class>
            <class>entity.Emplacement</class>		
            <properties>		
                <property name="hibernate.dialect" value="dialect.SQLiteDialect"/>
                <property name="hibernate.hbm2ddl.auto" value="create"/>
                <property name="hibernate.show_sql" value="true"/>
                <property name="hibernate.format_sql" value="false"/>
                <property name="javax.persistence.jdbc.driver" value="org.sqlite.JDBC"/>
                <property name="javax.persistence.jdbc.url" value="jdbc:sqlite:C://Users/nathan/Documents/NetBeansProjects/gedlocal/gedlocal.db"/>      
            </properties>        
        </persistence-unit>
    </persistence>
    entité Action
    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
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
     
    /*
     * To change this license header, choose License Headers in Project Properties.
     * To change this template file, choose Tools | Templates
     * and open the template in the editor.
     */
    package entity;
     
    import java.io.Serializable;
    import javax.persistence.Basic;
    import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.Id;
    import javax.persistence.JoinColumn;
    import javax.persistence.ManyToOne;
    import javax.persistence.NamedQueries;
    import javax.persistence.NamedQuery;
    import javax.persistence.Table;
    import javax.xml.bind.annotation.XmlRootElement;
     
    /**
     *
     * @author nathan
     */
    @Entity
    @Table(name = "action")
    @XmlRootElement
    @NamedQueries({
        @NamedQuery(name = "Action.findAll", query = "SELECT a FROM Action a"),
        @NamedQuery(name = "Action.findById", query = "SELECT a FROM Action a WHERE a.id = :id"),
        @NamedQuery(name = "Action.findByType", query = "SELECT a FROM Action a WHERE a.type = :type"),
        @NamedQuery(name = "Action.findByDateAction", query = "SELECT a FROM Action a WHERE a.dateAction = :dateAction"),
        @NamedQuery(name = "Action.findBySynchronise", query = "SELECT a FROM Action a WHERE a.synchronise = :synchronise")})
    public class Action implements Serializable {
        private static final long serialVersionUID = 1L;
        @Id
        @Basic(optional = false)
        @Column(name = "id")
        private Integer id;
        @Column(name = "type")
        private String type;
        @Column(name = "date_action")
        private String dateAction;
        @Column(name = "synchronise")
        private Integer synchronise;
        @JoinColumn(name = "element", referencedColumnName = "id")
        @ManyToOne
        private Element element;
     
        public Action() {
        }
     
        public Action(Integer id) {
            this.id = id;
        }
     
        public Integer getId() {
            return id;
        }
     
        public void setId(Integer id) {
            this.id = id;
        }
     
        public String getType() {
            return type;
        }
     
        public void setType(String type) {
            this.type = type;
        }
     
        public String getDateAction() {
            return dateAction;
        }
     
        public void setDateAction(String dateAction) {
            this.dateAction = dateAction;
        }
     
        public Integer getSynchronise() {
            return synchronise;
        }
     
        public void setSynchronise(Integer synchronise) {
            this.synchronise = synchronise;
        }
     
        public Element getElement() {
            return element;
        }
     
        public void setElement(Element element) {
            this.element = element;
        }
     
        @Override
        public int hashCode() {
            int hash = 0;
            hash += (id != null ? id.hashCode() : 0);
            return hash;
        }
     
        @Override
        public boolean equals(Object object) {
            // TODO: Warning - this method won't work in the case the id fields are not set
            if (!(object instanceof Action)) {
                return false;
            }
            Action other = (Action) object;
            if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
                return false;
            }
            return true;
        }
     
        @Override
        public String toString() {
            return "entity.Action[ id=" + id + " ]";
        }
     
    }
    controller ActionMetier.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
     
    /*
     * To change this license header, choose License Headers in Project Properties.
     * To change this template file, choose Tools | Templates
     * and open the template in the editor.
     */
    package metier;
     
    import entity.Action;
    import java.util.List;
    import javax.persistence.EntityManager;
    import javax.persistence.EntityManagerFactory;
    import javax.persistence.Persistence;
    import javax.persistence.Query;
     
    /**
     *
     * @author nathan
     */
    public class ActionMetier {    
    	EntityManagerFactory emf;
    	EntityManager em;
     
        public ActionMetier() {
            emf = Persistence.createEntityManagerFactory("pu-sqlite-jpa");
            em = emf.createEntityManager();
        }
     
        public List<Action> findAll() {
            try {
                Query requete = em.createQuery("SELECT a FROM Action a");
                return requete.getResultList();
            } catch (Exception e) {
                e.printStackTrace();
                return null;
            }
        }
     
    }
    Je vous remercie de votre aide!

  2. #2
    Membre Expert Avatar de jeffray03
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    1 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 501
    Par défaut
    Salut,
    regardes si tu n´utilises pas differente version d´hibernate pour le project et pour l´ecriture dans la base de données?

    Eric

  3. #3
    Membre expérimenté

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 122
    Par défaut
    Merci, tout est resolu! J'ai minitieusement utiliser des librairies qui sont compatibles entres elles!
    Encore merci!

  4. #4
    Membre expérimenté

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 122
    Par défaut
    Je réouvre cette discussion car apparement, tout n'es pas OK!

    Hibernate se connecte à la base SQLITE : OK
    Je liste les entité dans la base : OK
    Je crée des lignes, disons 2 lignes, dans la base : OK
    Je liste les 2 lignes : OK
    Je ferme mon application : OK
    Je ré-execute mon application : Oups, KO, mes 2 lignes ont disparu de ma base!

  5. #5
    Membre Expert Avatar de jeffray03
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    1 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 501
    Par défaut
    salut,
    c´est a cause de ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <property name="hibernate.hbm2ddl.auto" value="create"/>
    ceci veut dire:
    crees le schema de nouveau et detruit l´ancien s´il y en a.
    si tu veux faire que cela reste tu peux faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <property name="hibernate.hbm2ddl.auto" value="update"/>
    Eric

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

Discussions similaires

  1. Hibernate - connexion avec une base sqlite
    Par Lebas dans le forum Hibernate
    Réponses: 0
    Dernier message: 11/10/2010, 16h15
  2. qui connait sqlite ?
    Par Emmanuel Lecoester dans le forum SQLite
    Réponses: 23
    Dernier message: 19/02/2010, 13h44
  3. [Plugin] Hibernate
    Par speedster dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 26/08/2004, 11h01
  4. Fonctionnement d'Hibernate
    Par coyot dans le forum Hibernate
    Réponses: 12
    Dernier message: 19/05/2004, 19h10
  5. [JDO]Hibernate : Mapping d'un champ auto-incrémenté
    Par brice.antoine dans le forum Hibernate
    Réponses: 4
    Dernier message: 02/04/2004, 10h36

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