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

Hibernate Java Discussion :

probleme avec la construction de la requete


Sujet :

Hibernate Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 13
    Points : 7
    Points
    7
    Par défaut probleme avec la construction de la requete
    Salut

    J'ai tout simplement un probleme lors de la generation de la requete

    Sur windows, ca marche
    insert into TABLE
    (LAST_UPDATE_DATE, LAST_UPDATED_BY, VENDOR_NAME, ENABLED_FLAG, VENDOR_NUM) values (?, ?, ?, ?)

    Sur unix, ca ne marche pas car j'obtiens :
    insert into TABLE
    (VENDOR_NUM) values (?)
    Il ne prends qu'un seul champ en compte

    Quelqu'un aurait une idée?

  2. #2
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Faudrait peut-être nous donner un peu plus d'informations pour t'aider.
    Le code qui appelle la requête et la requête initiale (si c'est du HQl) voire les mappings.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    230
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 230
    Points : 132
    Points
    132
    Par défaut
    ...quel est trop problème ?

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    euh oui dsl.
    je n'ai pas de fichier de mapping car j'utilise les entity bean
    le code :

    em.persist(fournisseur);
    (l'objet contenant les variables suivantes:
    LAST_UPDATE_DATE, LAST_UPDATED_BY, VENDOR_NAME, ENABLED_FLAG, VENDOR_NUM)

    voici mon fichier de conf:

    <?xml version="1.0" encoding="UTF-8"?>
    <persistence xmlns="http://java.sun.com/xml/ns/persistence"
    version="1.0">
    <persistence-unit name="em">
    <description>
    Basic javaSE application containing JSR 220 entity beans
    </description>
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <class>com.cpo.nopz.entity.Fournisseur</class>
    <properties>
    <property name="hibernate.connection.driver_class"
    value="oracle.jdbc.driver.OracleDriver" />
    <property name="hibernate.connection.url"
    value="jdbc:oracle:thin:@nopeudvb.cpo.com:1571:NTS1UK" />
    <property name="hibernate.connection.user" value="apps" />
    <property name="hibernate.connection.password" value="apps" />
    <property name="c3p0.min_size" value="5" />
    <property name="c3p0.max_size" value="50" />
    <property name="c3p0.timeout" value="1800" />
    <property name="c3p0.max_statements" value="0" />
    <property name="c3p0.idle_test_period" value="30" />
    <property name="hibernate.show_sql" value="true" />
    <property name="hibernate.use_sql_comments" value="true" />
    <property name="hibernate.dialect"
    value="org.hibernate.dialect.Oracle9Dialect" />
    </properties>
    </persistence-unit>
    </persistence>

    et donc mon probleme c'est que hibernate me genere ca :
    insert into TABLE (VENDOR_NUM) values (?)
    en gros ya qu'un champ !
    j'espere etre assez claire

    et pour le mapping voici la classe:
    /** . */
    @Id
    @Column(name = "VENDOR_NUM", nullable = false)
    private String id;

    /** @Temporal(TemporalType.DATE). */

    @Column(name = "LAST_UPDATE_DATE", nullable = false)
    private String lastUpdateDate;

    /** . */
    @Column(name = "LAST_UPDATED_BY", nullable = true)
    private Integer lastUpdatedBy;

    Merci d'avance

  5. #5
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Qu'est-ce qui change entre ton environnement Windows ou Unix ?
    C'est la même version du Serveur d'application ?

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    oui c'est la meme version de tomcat.
    Il n'y a pas de changement que je sache

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    je viens de remarquer qu'il ne mettez que la clé dans le insert.
    bizzare !

  8. #8
    Membre régulier
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2002
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mai 2002
    Messages : 94
    Points : 94
    Points
    94
    Par défaut
    L'accès n'est pas de type "field" par défaut, tu as peut-être oublié l'annotation
    @AccessType("field") non ?

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    merci pour ta reponse,

    mais apparemment c'est pas ca!
    Et c'est pas facile de trouver un probleme similaire sur le net.
    Je continue de chercher!
    Le pire c'est que ca marche sous windows !

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    apres analyse des logs j'ai identifier exactement la ou se trouve le probleme :

    ------------------voici la log windows:
    DEBUG http-8080-Processor23 org.hibernate.persister.entity.AbstractEntityPersister - Dehydrating entity: [com.cpo.nopgps.entity.Supplier#GPS0000073613]
    DEBUG http-8080-Processor23 org.hibernate.type.DateType - binding '29 June 2007' to parameter: 1
    DEBUG http-8080-Processor23 org.hibernate.type.IntegerType - binding '3' to parameter: 2
    DEBUG http-8080-Processor23 org.hibernate.type.StringType - binding 'TESTUNIX' to parameter: 3
    DEBUG http-8080-Processor23 org.hibernate.type.StringType - binding 'Y' to parameter: 4
    DEBUG http-8080-Processor23 org.hibernate.type.StringType - binding null to parameter: 5
    DEBUG http-8080-Processor23 org.hibernate.type.StringType - binding null to parameter: 6
    DEBUG http-8080-Processor23 org.hibernate.type.DateType - binding '01 January 2003' to parameter: 7
    DEBUG http-8080-Processor23 org.hibernate.type.DateType - binding null to parameter: 8
    DEBUG http-8080-Processor23 org.hibernate.type.StringType - binding null to parameter: 9
    DEBUG http-8080-Processor23 org.hibernate.type.StringType - binding null to parameter: 10
    DEBUG http-8080-Processor23 org.hibernate.type.StringType - binding null to parameter: 11
    DEBUG http-8080-Processor23 org.hibernate.type.StringType - binding null to parameter: 12
    DEBUG http-8080-Processor23 org.hibernate.type.StringType - binding null to parameter: 13
    DEBUG http-8080-Processor23 org.hibernate.type.StringType - binding null to parameter: 14
    DEBUG http-8080-Processor23 org.hibernate.type.StringType - binding null to parameter: 15
    DEBUG http-8080-Processor23 org.hibernate.type.StringType - binding null to parameter: 16
    DEBUG http-8080-Processor23 org.hibernate.type.StringType - binding null to parameter: 17
    DEBUG http-8080-Processor23 org.hibernate.type.IntegerType - binding null to parameter: 18
    DEBUG http-8080-Processor23 org.hibernate.type.StringType - binding null to parameter: 19
    DEBUG http-8080-Processor23 org.hibernate.type.StringType - binding null to parameter: 20
    DEBUG http-8080-Processor23 org.hibernate.type.StringType - binding null to parameter: 21
    DEBUG http-8080-Processor23 org.hibernate.type.StringType - binding null to parameter: 22
    DEBUG http-8080-Processor23 org.hibernate.type.StringType - binding null to parameter: 23
    DEBUG http-8080-Processor23 org.hibernate.jdbc.AbstractBatcher - Executing batch size: 1


    ------------------voici la log unix :

    DEBUG [http-8080-Processor23] (AbstractEntityPersister.java:1942) - Dehydrating entity: [com.cpo.nopgps.entity.Supplier#GPS0000073613]
    DEBUG [http-8080-Processor23] (NullableType.java:80) - binding 'GPS0000073613' to parameter: 1
    DEBUG [http-8080-Processor23] (BatchingBatcher.java:44) - Executing batch size: 1


    En gros il fait le binding sur tous mes champs sous windows et pas sous unix .
    Quelqu'un aurait une idée????

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    j'ai encore avancée :

    le probleme arrive des le debut :

    sous unix j'ai :

    (AbstractEntityPersister.java:2696) - Snapshot select: /* get current state com.cpo.nopgps.entity.Supplier */ select supplier_.VENDOR_NUM
    from TABLE where supplier_.VENDOR_NUM=?

    alors que sous windows il charge correctement toute les propriete de la classe :

    (AbstractEntityPersister.java:2696) - Snapshot select: /* get current state com.cpo.nopgps.entity.Supplier*/ select supplier_.VENDOR_NUM, supplier_.LAST_UPDATE_DATE as LAST2_7_, supplier_.LAST_UPDATED_BY as LAST3_7_
    from TABLE where supplier_.VENDOR_NUM=?

    Toujours personne pour m'aider?

  12. #12
    Membre régulier
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2002
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mai 2002
    Messages : 94
    Points : 94
    Points
    94
    Par défaut
    Qu'elle base de donnée utilises-tu ?

    C'est dommage, j'ai perdu le liens, mais j'ai lu récemment un article qui faisait une liste des problèmes de compatibilités entre BD, notamment d'un système d'exploitation à l'autre.

    Je ne sais pas si c'est le problème ici, mais il se peu que la base n'utilise pas le même codage ou la même manière de représenter les dates d'un OS à l'autre.

    Dsl, je ne peux malheuresement pas t'aider plus, essais de faire une recherche dans le sens des problèmes de compatibilités d'un OS à l'autre.

  13. #13
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    C'est la même base de données qui est utilisée ?
    Si ce n'est pas la même base, est elle configurée de la même manière ?
    Contient elle exactement les mêmes tables ?
    Qu'utilises tu comme implémentation de persistance ? Hibernate ? Autre ?
    Est-ce que ce sont les mêmes jar utilisés ?
    Le même driver JDBC ?

  14. #14
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    j'utilise une base oracle 9i

    et en gros mon soucis c'est qu'il charge mal les classes de persistance

  15. #15
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Ca, j'ai compris, mais ça ne répond pas à mes questions.

  16. #16
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    deja merci pour ta reponse:

    C'est la même base de données qui est utilisée ?
    Si ce n'est pas la même base, est elle configurée de la même manière ?
    >>>oui c'est la meme

    Contient elle les exactement les mêmes tables ?
    >>>oui
    Qu'utilises tu comme implémentation de persistance ? Hibernate ? Autre ?
    >> >j'utilise les entitymanager
    Est-ce que ce sont les mêmes jar utilisés ?
    >>>oui , ce sont les meme jar
    Le même driver JDBC ?
    oui les meme driver

    en gros j'ai un script ant sous eclipse windows qui me genere un war.
    Je le deploie sur mon tomcat windows , je lance mon webservice, ca marche!
    ensuite
    je le deploie sur tomcat sur une machine unix et j'ai mon probleme

    Merci de ton aide

  17. #17
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Tomcat n'est pas un serveur d'application, il ne possède donc pas d'implémentation des EJB3 donc des Entity.
    Tu as donc du rajouter une implémentation des EJB3 pour que cela fonctionne.
    Cette implémentation est elle la même sur tes deux serveurs ? Même version des jars ?
    Je sais je me répète un peu, mais il faut être certain que tout soit identique de chaque coté.

  18. #18
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    Tomcat n'est pas un serveur d'application, il ne possède donc pas d'implémentation des EJB3 donc des Entity.
    Tu as donc du rajouter une implémentation des EJB3 pour que cela fonctionne.

    >>> exact en fait quand je telecharge hibernate entity manager 3.3.1.GA
    >>>j'ai les lib suivantes :
    >>>hibernate-entitymanager.jar:
    >>>ejb3-persistence.jar
    >>>hibernate-annotations.jar
    >>>hibernate-commons-annotations.jar
    >>>hibernate-validator.jar
    >>>jboss-archive-browsing.jar


    Cette implémentation est elle la même sur tes deux serveurs ? Même version des jars ?
    >>>oui, car tout mes jar sont dans WEBINF/lib
    Je sais je me répète un peu, mais il faut être certain que tout soit identique de chaque coté.

    >>>non non mais ya pas de soucis tu m'aide donc tu as le droit

  19. #19
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    J'ai peut-être raté quelque chose mais je ne vois pas.
    Essaie de poser la question aussi sur le forum d'hibernate: www.hibernate.org

Discussions similaires

  1. probleme avec les dates dans une requete
    Par obydissonn dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 24/06/2008, 12h52
  2. Réponses: 5
    Dernier message: 12/01/2007, 11h39
  3. probleme avec des calculs et une requete de mise a jour
    Par el_quincho dans le forum Access
    Réponses: 2
    Dernier message: 16/03/2006, 10h06
  4. PROBLEME AVEC LES REQUETES IS NULL / NOT EXISTS
    Par sylvaine dans le forum Langage SQL
    Réponses: 5
    Dernier message: 04/06/2004, 13h26
  5. au secour probleme avec une requete...
    Par soufiane59 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 26/09/2003, 10h28

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