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 :

Hibernate et Oracle


Sujet :

JPA Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2011
    Messages : 43
    Points : 18
    Points
    18
    Par défaut Hibernate et Oracle
    bonjour,

    j'utilise actuellement Hibernate et Oracle 11g. J'éprouve des difficultés lorsque j'exécute mon projet, que ce soit en mode "create-drop" ou simplement "create", j'obtiens toujours des erreurs du genre :

    drop table PERSONNE cascade constraints
    ERROR [org.hibernate.tool.hbm2ddl.SchemaExport] (MSC service thread 1-1) ORA-00942: Table ou vue inexistante
    Pourtant, ma base de données est vide, et lors des tests sous MySQL y avait absolument aucun souci, mais bon, Oracle quoi...

    Si quelqu'un a une idée...

  2. #2
    Membre habitué
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Novembre 2011
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Novembre 2011
    Messages : 101
    Points : 134
    Points
    134
    Par défaut
    Peux-tu poster ton fichier xml de configuration d'hibernate et ton fichier mapping de la table PERSONNE?

    Si ta base de données est vide, c'est normal qu'il ne trouve pas la table PERSONNE...

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2011
    Messages : 43
    Points : 18
    Points
    18
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?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="TheHub">
    		<provider>org.hibernate.ejb.HibernatePersistence</provider>
    		<jta-data-source>java:jboss/datasources/oracleDS</jta-data-source>
    		<properties>
    			<property name="hibernate.dialect"		value="org.hibernate.dialect.OracleDialect"/>
    			<property name="hibernate.hbm2ddl.auto" value="create" />
    		</properties>
    	</persistence-unit>
    </persistence>
    Mon mapping est réalisé via les annotations, je suis presque sûr que l'erreur vient d'Oracle, puisqu'avec la même configuration je n'avais pas de souci avec MySql

  4. #4
    Membre habitué
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Novembre 2011
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Novembre 2011
    Messages : 101
    Points : 134
    Points
    134
    Par défaut
    Remplace

    <property name="hibernate.dialect" value="org.hibernate.dialect.OracleDialect"/>

    Par :

    <property name="hibernate.dialect" value="org.hibernate.dialect.Oracle10gDialect"/>

    Oracle 11g utilise le diaclect 10g. J'avais eu un soucis avec ceci aussi, mais ça m'étonnerais que ça soit la source du problème...

    Plus important, je ne vois pas les propriétés de mapping, du type :

    <mapping resource="chemin_d_acces/Personne.hbm.xml"></mapping>

    Tu peux envoyer le xml du mapping?

    Sinon je te renvoie vers la documentation officielle :
    http://docs.jboss.org/hibernate/core...01.html#d0e184

    Personnellement, j'ai réalisé mon fichier xml de configuration sur cette base.

  5. #5
    Membre habitué
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Novembre 2011
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Novembre 2011
    Messages : 101
    Points : 134
    Points
    134
    Par défaut
    Voici mon fichier : hibernate.cfg.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
    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD//EN"
        "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
    <hibernate-configuration>
     <session-factory>
      <property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
      <property name="hibernate.connection.url">jdbc:oracle:thin:@localhost:1521:MONSID</property>
      <property name="hibernate.connection.username">USER</property>
      <property name="hibernate.connection.password">PASSWORD</property>
      <property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property>
      <property name="show_sql">true</property>
      <mapping resource="chemindacces/Personne.hbm.xml"></mapping>
    </session-factory>
    </hibernate-configuration>
    Et le fichier : chemindacces/Personne.hbm.xml
    - En rouge : les attributs de ta classe Personne
    - En vert : les colonnes de la DB Oracle
    - En bleu : Lieu où se trouve la classe Personne

    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"?>
    <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
    <hibernate-mapping>
        <class name="com.dbHib.pack.Personne" table="PERSONNE">
            <id name="id" type="integer">
                <column name="PERS_ID" precision="5" scale="0" />
                <generator class="increment" />
            </id>
            <property name="username" type="string">
                <column name="PERS_NAME" length="20" not-null="true" />
            </property>
            <property name="password" type="string">
                <column name="PERS_PSW" length="64" not-null="true" />
            </property>        
        </class>
    </hibernate-mapping>
    Et pour être complet, la classe Personne :

    com.dbHib.pack.Personne

    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
    public class Personne implements java.io.Serializable, Comparable<Personne> {
    	private int id;
    	private String username;
    	private String password;
    
    	public Personne() {
    	}
    
    	public Personne(int id, String username, String password) {
    		this.id = id;
    		this.username = username;
    		this.password = password;
    	}
     
    	public int getId() {
    		return id;
    	}
    
    	public void setId(int id) {
    		this.id = id;
    	}
    
    	public String getUsername() {
    		return username;
    	}
    
    	public void setUsername(String username) {
    		this.username = username;
    	}
    
    	public String getPassword() {
    		return password;
    	}
    
    	public void setPassword(String password) {
    		this.password = password;
    	}
    
    	
    	public boolean equals(Object o){
    		if(o instanceof User)
    		{
    			if(this.id == ((User)o).getId())
    			{
    				return true;
    			}
    		}
    		return false;
    	}
    }
    Voilà, je crois qu'avec tout ça tu devrais pouvoir mettre en place la relation Hibernate - Oracle 11g.

  6. #6
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2011
    Messages : 43
    Points : 18
    Points
    18
    Par défaut
    J'utilise les annotations, plus besoin de toute cette configuration XML.

    Le problème venait du fait que les booléans Java posent pb lors du mapping avec Oracle.

    ++

  7. #7
    Membre confirmé
    Avatar de Khaled.Noordin
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    354
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 354
    Points : 497
    Points
    497
    Billets dans le blog
    1
    Par défaut
    par hasard tu as fait un truc qui ressemble à ça pour que cela passe?

    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        @Column(name = "my_boolean", columnDefinition = "BIT")
        private Boolean myBoolean;

Discussions similaires

  1. hibernate tools oracle procédure
    Par nico33410 dans le forum Hibernate
    Réponses: 1
    Dernier message: 30/01/2009, 17h59
  2. Problème float entre hibernate et oracle
    Par dahno_fr dans le forum Hibernate
    Réponses: 2
    Dernier message: 08/07/2008, 10h19
  3. Hibernate - Client oracle est il obligatoire?
    Par abd21 dans le forum Hibernate
    Réponses: 1
    Dernier message: 28/02/2008, 15h08
  4. connexion hibernate tools oracle
    Par friedamichelle dans le forum Hibernate
    Réponses: 2
    Dernier message: 13/02/2008, 11h39
  5. Configurer Hibernate pour Oracle
    Par turie dans le forum Hibernate
    Réponses: 1
    Dernier message: 29/05/2006, 15h08

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