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 :

Problèmes schéma et noms tables renvoyés


Sujet :

JPA Java

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2012
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Juillet 2012
    Messages : 106
    Points : 63
    Points
    63
    Par défaut Problèmes schéma et noms tables renvoyés
    Bonjour,

    j'ai un souci qui après update / commit dans SVN vient de m’apparaître. Lorsque je demande ma création de tables via le schéma. j'ai un retour dans mon log par exemple avec ma table StatiqValue

    INFO java.sql.DatabaseMetaData - HHH000262: Table not found: StatiqValue.

    lorsque je relance mon appli sur le deuxième passage, il me trouve ma table

    INFO org.hibernate.tool.hbm2ddl.TableMetadata - HHH000261: Table found: MANAGER.PUBLIC.STATIQVALUE

    mais elle n'arrive pas a retrouver les données que j'ai inséré au démarrage.

    Pourtant lors d'un affichage de la console, mes données sont bien en base

    quelqu'un aurait une idée ?

    mon 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
    22
    23
    24
    25
     
    <?xml version="1.0" encoding="UTF-8"?>
    <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" xmlns="http://java.sun.com/xml/ns/persistence">
      <persistence-unit name="MANAG" transaction-type="RESOURCE_LOCAL">
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <class>medilor.mgnt.DAO.entities.StatiqValues</class>
        <class>medilor.mgnt.DAO.entities.GestEntity</class>
        <class>medilor.mgnt.DAO.entities.FichiersEntity</class>
        <class>medilor.mgnt.DAO.entities.ParamEntity</class>
        <properties>
             <property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect"/>
          <property name="javax.persistence.jdbc.driver" value="org.h2.Driver"/>
          <property name="javax.persistence.jdbc.url" value="jdbc:h2:file:./bdd/manager"/>
          <property name="javax.persistence.jdbc.user" value="sa"/>
          <property name="javax.persistence.jdbc.password" value=""/>
           <property name="cache.provider_class" value="org.hibernate.cache.internal.NoCacheProvider"/>
          <property name="hibernate.hbm2ddl.auto" value="update"/>
          <property name="hibernate.connection.useUnicode" value="true"/>
    		<property name="hibernate.connection.characterEncoding" value="Cp1252" />
    		<property name="hibernate.connection.charSet" value="Cp1252"/>
        </properties>
      </persistence-unit>
    </persistence>
    et mon entity

    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
    @Entity
    @NamedQueries({ 
        @NamedQuery(name = "StatiqValue.findAll", query = "SELECT e FROM StatiqValues e "),
        @NamedQuery(name = "StatiqValue.findByID", query = "SELECT e FROM StatiqValues e WHERE e.id = :id "),
        @NamedQuery(name = "StatiqValue.findByConstante", query = "SELECT e FROM StatiqValues e WHERE e.constante = :constante ")
    })
    @Table(name = "StatiqValue")
    public class StatiqValues implements Serializable {
     
     
        private static final long serialVersionUID = 1L;
     
        @Id
        @GenericGenerator(name="generator", strategy="increment")
        @GeneratedValue(generator="generator")
        @Column(name = "ID_STVAL")
        private Long id;
        private String constante;
        private String valeur;
        private String commentaire;

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    quand tu te connecte à la base avec ton client h2, tu y trouve bien les données?

    Quel rapport avec svn, ta db h2 est dans svn???

    Faudrait le log complet de ton application.

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2012
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Juillet 2012
    Messages : 106
    Points : 63
    Points
    63
    Par défaut
    le rapport avec svn est que l'appli communiquait bien avant de vouloir trnasferer mon code sur svn, depuis j'ai ce souci ...

    sinon voilà mon log sur le premier démarrage

    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
     [2016-02-17 09:03:49,616] INFO  org.apache.commons.vfs2.impl.StandardFileSystemManager  - Using "C:\Users\Hanane\AppData\Local\Temp\vfs_cache" as temporary files store.
    [2016-02-17 09:03:49,663] INFO  medilor.mgnt.Astart.Main  - chemin initC:\Users\Hanane\AppData\Local\Temp\cheminCWFSE.ini
    [2016-02-17 09:03:49,975] INFO  org.hibernate.annotations.common.Version  - HCANN000001: Hibernate Commons Annotations {4.0.2.Final}
    [2016-02-17 09:03:49,979] INFO  org.hibernate.Version  - HHH000412: Hibernate Core {4.2.3.Final}
    [2016-02-17 09:03:49,980] INFO  org.hibernate.cfg.Environment  - HHH000206: hibernate.properties not found
    [2016-02-17 09:03:49,981] INFO  org.hibernate.cfg.Environment  - HHH000021: Bytecode provider name : javassist
    [2016-02-17 09:03:50,149] INFO  org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl  - HHH000402: Using Hibernate built-in connection pool (not for production use!)
    [2016-02-17 09:03:50,149] INFO  org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl  - HHH000115: Hibernate connection pool size: 20
    [2016-02-17 09:03:50,149] INFO  org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl  - HHH000006: Autocommit mode: true
    [2016-02-17 09:03:50,149] INFO  org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl  - HHH000401: using driver [org.h2.Driver] at URL [jdbc:h2:file:./bdd/manager]
    [2016-02-17 09:03:50,150] INFO  org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl  - HHH000046: Connection properties: {useUnicode=true, user=sa, autocommit=true, characterEncoding=Cp1252, charSet=Cp1252, release_mode=auto}
    [2016-02-17 09:03:50,201] INFO  org.hibernate.dialect.Dialect  - HHH000400: Using dialect: org.hibernate.dialect.H2Dialect
    [2016-02-17 09:03:50,351] INFO  org.hibernate.engine.transaction.internal.TransactionFactoryInitiator  - HHH000268: Transaction strategy: org.hibernate.engine.transaction.internal.jdbc.JdbcTransactionFactory
    [2016-02-17 09:03:50,354] INFO  org.hibernate.hql.internal.ast.ASTQueryTranslatorFactory  - HHH000397: Using ASTQueryTranslatorFactory
    [2016-02-17 09:03:50,568] INFO  org.hibernate.tool.hbm2ddl.SchemaUpdate  - HHH000228: Running hbm2ddl schema update
    [2016-02-17 09:03:50,568] INFO  org.hibernate.tool.hbm2ddl.SchemaUpdate  - HHH000102: Fetching database metadata
    [2016-02-17 09:03:50,569] INFO  org.hibernate.tool.hbm2ddl.SchemaUpdate  - HHH000396: Updating schema
    [2016-02-17 09:03:50,574] INFO  java.sql.DatabaseMetaData  - HHH000262: Table not found: GestManag
    [2016-02-17 09:03:50,575] INFO  java.sql.DatabaseMetaData  - HHH000262: Table not found: StatiqValue
    [2016-02-17 09:03:50,576] INFO  java.sql.DatabaseMetaData  - HHH000262: Table not found: fichiers
    [2016-02-17 09:03:50,577] INFO  java.sql.DatabaseMetaData  - HHH000262: Table not found: params
    [2016-02-17 09:03:50,577] INFO  java.sql.DatabaseMetaData  - HHH000262: Table not found: GestManag
    [2016-02-17 09:03:50,578] INFO  java.sql.DatabaseMetaData  - HHH000262: Table not found: StatiqValue
    [2016-02-17 09:03:50,579] INFO  java.sql.DatabaseMetaData  - HHH000262: Table not found: fichiers
    [2016-02-17 09:03:50,580] INFO  java.sql.DatabaseMetaData  - HHH000262: Table not found: params
    [2016-02-17 09:03:50,625] INFO  org.hibernate.tool.hbm2ddl.SchemaUpdate  - HHH000232: Schema update complete
    Lorsque j'ouvre ma console sql, les tables sont bien créées et remplies
    et sur ma deuxième relance

    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
    [2016-02-17 09:04:20,178] INFO  org.apache.commons.vfs2.impl.StandardFileSystemManager  - Using "C:\Users\Hanane\AppData\Local\Temp\vfs_cache" as temporary files store.
    [2016-02-17 09:04:20,226] INFO  medilor.mgnt.Astart.Main  - chemin initC:\Users\Hanane\AppData\Local\Temp\cheminCWFSE.ini
    [2016-02-17 09:04:20,543] INFO  org.hibernate.annotations.common.Version  - HCANN000001: Hibernate Commons Annotations {4.0.2.Final}
    [2016-02-17 09:04:20,548] INFO  org.hibernate.Version  - HHH000412: Hibernate Core {4.2.3.Final}
    [2016-02-17 09:04:20,549] INFO  org.hibernate.cfg.Environment  - HHH000206: hibernate.properties not found
    [2016-02-17 09:04:20,550] INFO  org.hibernate.cfg.Environment  - HHH000021: Bytecode provider name : javassist
    [2016-02-17 09:04:20,718] INFO  org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl  - HHH000402: Using Hibernate built-in connection pool (not for production use!)
    [2016-02-17 09:04:20,718] INFO  org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl  - HHH000115: Hibernate connection pool size: 20
    [2016-02-17 09:04:20,719] INFO  org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl  - HHH000006: Autocommit mode: true
    [2016-02-17 09:04:20,719] INFO  org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl  - HHH000401: using driver [org.h2.Driver] at URL [jdbc:h2:file:./bdd/manager]
    [2016-02-17 09:04:20,719] INFO  org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl  - HHH000046: Connection properties: {useUnicode=true, user=sa, autocommit=true, characterEncoding=Cp1252, charSet=Cp1252, release_mode=auto}
    [2016-02-17 09:04:20,771] INFO  org.hibernate.dialect.Dialect  - HHH000400: Using dialect: org.hibernate.dialect.H2Dialect
    [2016-02-17 09:04:20,921] INFO  org.hibernate.engine.transaction.internal.TransactionFactoryInitiator  - HHH000268: Transaction strategy: org.hibernate.engine.transaction.internal.jdbc.JdbcTransactionFactory
    [2016-02-17 09:04:20,924] INFO  org.hibernate.hql.internal.ast.ASTQueryTranslatorFactory  - HHH000397: Using ASTQueryTranslatorFactory
    [2016-02-17 09:04:21,136] INFO  org.hibernate.tool.hbm2ddl.SchemaUpdate  - HHH000228: Running hbm2ddl schema update
    [2016-02-17 09:04:21,136] INFO  org.hibernate.tool.hbm2ddl.SchemaUpdate  - HHH000102: Fetching database metadata
    [2016-02-17 09:04:21,137] INFO  org.hibernate.tool.hbm2ddl.SchemaUpdate  - HHH000396: Updating schema
    [2016-02-17 09:04:21,151] INFO  org.hibernate.tool.hbm2ddl.TableMetadata  - HHH000261: Table found: MANAGER.PUBLIC.GESTMANAG
    [2016-02-17 09:04:21,151] INFO  org.hibernate.tool.hbm2ddl.TableMetadata  - HHH000037: Columns: [id, fluxxml, nrelease, pathdwload, urgent, datemaj, pathinstalllib, pathinstall, nommaj, uriserveur, version]
    [2016-02-17 09:04:21,151] INFO  org.hibernate.tool.hbm2ddl.TableMetadata  - HHH000108: Foreign keys: []
    [2016-02-17 09:04:21,151] INFO  org.hibernate.tool.hbm2ddl.TableMetadata  - HHH000126: Indexes: [primary_key_d]
    [2016-02-17 09:04:21,155] INFO  org.hibernate.tool.hbm2ddl.TableMetadata  - HHH000261: Table found: MANAGER.PUBLIC.STATIQVALUE
    [2016-02-17 09:04:21,155] INFO  org.hibernate.tool.hbm2ddl.TableMetadata  - HHH000037: Columns: [valeur, id_stval, constante, commentaire]
    [2016-02-17 09:04:21,155] INFO  org.hibernate.tool.hbm2ddl.TableMetadata  - HHH000108: Foreign keys: []
    [2016-02-17 09:04:21,155] INFO  org.hibernate.tool.hbm2ddl.TableMetadata  - HHH000126: Indexes: [primary_key_c]
    [2016-02-17 09:04:21,160] INFO  org.hibernate.tool.hbm2ddl.TableMetadata  - HHH000261: Table found: MANAGER.PUBLIC.FICHIERS
    [2016-02-17 09:04:21,160] INFO  org.hibernate.tool.hbm2ddl.TableMetadata  - HHH000037: Columns: [gestfileent_id, id_file, execfile, verstoinstal, urlfile, md5, processing, numrelease, typeinstall, nomfichier, pathinst]
    [2016-02-17 09:04:21,160] INFO  org.hibernate.tool.hbm2ddl.TableMetadata  - HHH000108: Foreign keys: [fk_6lfalcqoeyvnmb5b9ev4o8f69]
    [2016-02-17 09:04:21,160] INFO  org.hibernate.tool.hbm2ddl.TableMetadata  - HHH000126: Indexes: [fk_6lfalcqoeyvnmb5b9ev4o8f69_index_f, primary_key_f]
    [2016-02-17 09:04:21,164] INFO  org.hibernate.tool.hbm2ddl.TableMetadata  - HHH000261: Table found: MANAGER.PUBLIC.PARAMS
    [2016-02-17 09:04:21,164] INFO  org.hibernate.tool.hbm2ddl.TableMetadata  - HHH000037: Columns: [gestentity_id, valueparam, id_param, nomparam]
    [2016-02-17 09:04:21,164] INFO  org.hibernate.tool.hbm2ddl.TableMetadata  - HHH000108: Foreign keys: [fk_7ewoevhymd388pytr4gplsfhl]
    [2016-02-17 09:04:21,164] INFO  org.hibernate.tool.hbm2ddl.TableMetadata  - HHH000126: Indexes: [primary_key_8, fk_7ewoevhymd388pytr4gplsfhl_index_8]
    [2016-02-17 09:04:21,165] INFO  org.hibernate.tool.hbm2ddl.SchemaUpdate  - HHH000232: Schema update complete
    Il trouve bien les tables, par contre lorsque je fait une requete via entityManager, celui me retrouve aucune donnée
    ce qui lance des exceptions avec des null comme ci dessous
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    [2016-02-17 09:04:21,743] INFO  medilor.mgnt.MAJ.downloadFile  - null\CWFSE.jar
    [2016-02-17 09:04:21,743] FATAL medilor.mgnt.Astart.Main  - date ou composant null, ne traite pas la ligne
    [2016-02-17 09:04:21,744] FATAL medilor.mgnt.MAJ.downloadFile  - exception was thrown

  4. #4
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Points : 2 061
    Points
    2 061
    Par défaut
    bonjour
    Citation Envoyé par Gaspard22 Voir le message
    le rapport avec svn est que l'appli communiquait bien avant de vouloir trnasferer mon code sur svn, depuis j'ai ce souci ...
    Je suis d'accord avec tchize_ pour moi cela n'a aucun rapport avec svn !

    Citation Envoyé par Gaspard22 Voir le message
    sinon voilà mon log sur le premier démarrage
    ....
    Dit nous plutôt ce que tu veux dire par un premier démarrage, quel est le contexte, tu supprimes tous les fichiers, c'est une nouvelle livraison ?
    En effet, avec H2 si la base n'existe pas il va la créer et il n'y aura pas de table la première fois.

    Citation Envoyé par Gaspard22 Voir le message
    Lorsque j'ouvre ma console sql, les tables sont bien créées et remplies
    et sur ma deuxième relance
    ....
    Il trouve bien les tables, par contre lorsque je fait une requete via entityManager, celui me retrouve aucune donnée
    ...
    Comment te connecte tu avec la console sql ?
    si tu utilise l'url "jdbc:h2:file:./bdd/manager", tu n'es pas sur la même base de données !
    Il n'y a pas de problème, il n'y a que des solutions.
    Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
    Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran

    Mes Articles : Mon premier article est sur le language D
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2012
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Juillet 2012
    Messages : 106
    Points : 63
    Points
    63
    Par défaut
    Je suis d'accord avec tchize_ pour moi cela n'a aucun rapport avec svn !
    Svn on est bien d'accord n'est pas le sujet, c'etait juste une remarque ( même si le jar compilé pesait 2 ko de moins après update).


    Dit nous plutôt ce que tu veux dire par un premier démarrage, quel est le contexte, tu supprimes tous les fichiers, c'est une nouvelle livraison ?
    En effet, avec H2 si la base n'existe pas il va la créer et il n'y aura pas de table la première fois.
    premier démarrage ma base et mes fichiers n'existent pas, j'initialise toutes mes données via un fichier et je les persiste dans ma base.
    J’exécute la meme manip sur un autre projet sans ces messages de tables not found.
    j'ouvre une console web via l'outil fourni par H2 et je retrouve bien mes tables remplies.

    c'est sur le deuxième démarrage que j'en ai la confirmation d'une erreur , car le système Jpa / hibernate n'arrive pas à me fournir les requêtes demandées.


    Comment te connecte tu avec la console sql ?
    si tu utilise l'url "jdbc:h2:file:./bdd/manager", tu n'es pas sur la même base de données !
    méthode utilisée dans 6 projets sans aucune erreur, ni difficulté
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    conn = DriverManager.getConnection("jdbc:h2:file:./bdd/manager", "sa", "");
    Server.startWebServer(conn);

  6. #6
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Tu ne devrais pas mettre une fichier relatif. Tu ignore "relatif à quoi" il est pour ton serveur. Ca peut être relatif à ton enveironnement, au serveur wildfly, au noeud, au vfs, ...

    tu dis qu'après redémarrage l'entity manager ne trouve rien, mais est-ce que tu trouve quelque chose avec le sql?
    Quand tu crée tes données, tu les crées comment? Tu peux montrer le code?

  7. #7
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Points : 2 061
    Points
    2 061
    Par défaut
    Citation Envoyé par Gaspard22 Voir le message
    J’exécute la meme manip sur un autre projet sans ces messages de tables not found.
    les tables not found viens du fait que tu as définis (dans le persistence.xml) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <property name="hibernate.hbm2ddl.auto" value="update"/>
    hibernate ne trouve pas les tables, donc il va les créer, ce n'est pas vraiment une erreur !
    Cependant, si c'est bien pour le développement, il est déconseillé d'utiliser ce genre d'options en production.

    Citation Envoyé par Gaspard22 Voir le message
    premier démarrage ma base et mes fichiers n'existent pas, j'initialise toutes mes données via un fichier et je les persiste dans ma base.
    J’exécute la meme manip sur un autre projet sans ces messages de tables not found.
    j'ouvre une console web via l'outil fourni par H2 et je retrouve bien mes tables remplies.

    c'est sur le deuxième démarrage que j'en ai la confirmation d'une erreur , car le système Jpa / hibernate n'arrive pas à me fournir les requêtes demandées.
    Lors du premier démarrage, tu n'as pas d'erreur sur l'accès aux données ?
    Il n'y a pas de problème, il n'y a que des solutions.
    Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
    Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran

    Mes Articles : Mon premier article est sur le language D
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2012
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Juillet 2012
    Messages : 106
    Points : 63
    Points
    63
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    Tu ne devrais pas mettre une fichier relatif. Tu ignore "relatif à quoi" il est pour ton serveur. Ca peut être relatif à ton enveironnement, au serveur wildfly, au noeud, au vfs, ...

    tu dis qu'après redémarrage l'entity manager ne trouve rien, mais est-ce que tu trouve quelque chose avec le sql?
    Quand tu crée tes données, tu les crées comment? Tu peux montrer le code?


    le fichier est relatif au répertoire d’exécution, sinon avec le sql je trouve toutes mes données créées via JPA

    ci dessous un bout du code de ma persistence

    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
     statDao = new JPAStatiqValuesDao();
    	   gestDao = new JPAGestEntityDao();
    	   /* fichier commun */
    	   Ini.Section section = fichierCommun.get("CWFSE");
    	   MNGRTEMPDIR = currentpath + File.separator + "MANAGER" + File.separator;
     
    	   /* init StatiqValues */
    	   StatiqValues licence = new StatiqValues();
    	   licence.setConstante("licence");
    	   licence.setValeur(section.get("licence"));
    	   statDao.persistEntity(licence);
    	   licence = null;
     
    	   StatiqValues identifiant = new StatiqValues();
    	   identifiant.setConstante("identifiant");
    	   identifiant.setValeur(section.get("identifiant"));
    	   statDao.persistEntity(identifiant);
    	   identifiant = null;
    ma classe JPAStatiqValuesDao



    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
      private EntityManager em;
     
     
        public JPAStatiqValuesDao() {
    	   em = NoteEntityManager.getInstance().getEntityManager();
        }
     
        @Override
        public StatiqValues findByConstante(String constante) {
     
    	   Query q = em.createNamedQuery("StatiqValue.findByConstante");
            q.setParameter("constante", constante);
    	   StatiqValues statiqValues;
            try {
    	       statiqValues = (StatiqValues) q.getSingleResult();
            } catch (NoResultException e) {
         	  return null;
            }
    	   return statiqValues;
        }
     
        @Override
        public ArrayList<StatiqValues> findAll() {
    	   Query q = em.createNamedQuery("StatiqValue.findAll");
    	   ArrayList<StatiqValues> listStat = (ArrayList<StatiqValues>) q.getResultList();
    	   return listStat;
        }
     
        @Override
        public StatiqValues findById(Integer id) {
    	   Query q = em.createNamedQuery("StatiqValue.findByID");
            q.setParameter("id", id.longValue());
    	   StatiqValues statiqValues = (StatiqValues) q.getSingleResult();
    	   return statiqValues;
        }
     
        @Override
        public void mergeEntity(StatiqValues val) {
    	   		em.getTransaction().begin();
    	   		em.merge(val);
    	   		em.getTransaction().commit();
        }
     
        @Override
        public Long persistEntity(StatiqValues val) {
    	   em.getTransaction().begin();
    	   	em.persist(val);
    	   	 em.getTransaction().commit();
    	   return val.getId();
        }
     
        @Override
        public void persistEntityA(StatiqValues val) {
    	   em.getTransaction().begin();
    	   	em.persist(val);
    	   	 em.getTransaction().commit();
     
        }
     
        @Override
        public void deleteEntity(StatiqValues val) {
    	   em.getTransaction().begin();
    	   	em.remove(val);
    	   	 em.getTransaction().commit();
     
        }
     
        @Override
        public void deleteEntitybyID(Integer id) {
    	   em.getTransaction().begin();
    	   StatiqValues val = em.find(StatiqValues.class, id.longValue());
    	   em.remove(val);
    	   em.getTransaction().commit();
        }
     
        @Override
        public void deleteEntitybyLongID(Long id) {
    	   em.getTransaction().begin();
    	   StatiqValues val = em.find(StatiqValues.class, id);
    	   em.remove(val);
    	   em.getTransaction().commit();
        }
     
        @Override
        public StatiqValues findByIdLong(Long id) {
    	   Query q = em.createNamedQuery("StatiqValue.findByID");
            q.setParameter("id", id);
    	   StatiqValues statiqValues = (StatiqValues) q.getSingleResult();
    	   return statiqValues;
        }

  9. #9
    Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2012
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Juillet 2012
    Messages : 106
    Points : 63
    Points
    63
    Par défaut
    Citation Envoyé par Alkhan Voir le message
    les tables not found viens du fait que tu as définis (dans le persistence.xml) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <property name="hibernate.hbm2ddl.auto" value="update"/>
    hibernate ne trouve pas les tables, donc il va les créer, ce n'est pas vraiment une erreur !
    Cependant, si c'est bien pour le développement, il est déconseillé d'utiliser ce genre d'options en production.



    Lors du premier démarrage, tu n'as pas d'erreur sur l'accès aux données ?
    si j'ai une erreur sur l'accès aux données, j'avais juste séparé les méthodes pour qu'elles s’exécutent en 2 temps.

    en gros
    création schéma via JPA/ Hibernate
    init de la base
    traitement données

  10. #10
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par Gaspard22 Voir le message
    le fichier est relatif au répertoire d’exécution
    Qui peux valoir tout et n'importe quoi, c'est ce que j'essaie de te dire. "." est un répertoire dont la spec j2EE dit clairement qu'il est laissé à l'appréciation du conteneur, qui peux le faire bouger à sa guise. D'où le danger d'utiliser ça. Toujours utiliser un chemin absolu.


    Citation Envoyé par Gaspard22 Voir le message
    , sinon avec le sql je trouve toutes mes données créées via JPA
    Ok, donc, SQL trouve les donnée, JPA trouve les tables, mais ton code ne trouve pas les entités. D'où la question, comment tu recherche ces données?

    Au passage, ce n'est pas la méthode la plus propre pour gérer un entitymanager, il vaut mieux laisser le conteneur J2EE s'en charger plutot que d'en créer un explicitement. En général on se contente de créer le persistence.xml et d'injecter l'entityManager dans une EJB. Ce qui permet d'avoir au passage une gestion conteneur de la transaction.

  11. #11
    Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2012
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Juillet 2012
    Messages : 106
    Points : 63
    Points
    63
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    Qui peux valoir tout et n'importe quoi, c'est ce que j'essaie de te dire. "." est un répertoire dont la spec j2EE dit clairement qu'il est laissé à l'appréciation du conteneur, qui peux le faire bouger à sa guise. D'où le danger d'utiliser ça. Toujours utiliser un chemin absolu.

    Au passage, ce n'est pas la méthode la plus propre pour gérer un entitymanager, il vaut mieux laisser le conteneur J2EE s'en charger plutot que d'en créer un explicitement. En général on se contente de créer le persistence.xml et d'injecter l'entityManager dans une EJB. Ce qui permet d'avoir au passage une gestion conteneur de la transaction.

    Je suis en Java SE, tout dans un jar executable, pas de container EJB. Je suis obligé de laissé donc le chemin qui se trouve dans le répertoire de travail du jar, car le jar s'installe selon l'envie de l'utilisateur final.

    Citation Envoyé par tchize_ Voir le message
    Ok, donc, SQL trouve les donnée, JPA trouve les tables, mais ton code ne trouve pas les entités. D'où la question, comment tu recherche ces données?
    sinon par exemple je récupère ainsi mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     ArrayList<GestEntity> myGestEntities = gestDao.findAll();
    StatiqValues licence = statDao.findByConstante("licence");
    et j'ai voici mon implémentation de l'interface gestDao pour l'exemple

    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
    public class JPAGestEntityDao implements GestEntityDao {
     
     
        private EntityManager em;
     
     
        public JPAGestEntityDao() {
    	   em = NoteEntityManager.getInstance().getEntityManager();
        }
     
     
     
        @Override
        public ArrayList<GestEntity> findAll() {
    	   Query q = em.createNamedQuery("GestManag.findAll");
    	   ArrayList<GestEntity> listStat = (ArrayList<GestEntity>) q.getResultList();
    	   return listStat;
        }
     
        @Override
        public GestEntity findById(Integer id) {
    	   Query q = em.createNamedQuery("GestManag.findByID");
            q.setParameter("id", id.longValue());
            GestEntity statiqValues = (GestEntity) q.getSingleResult();
    	   return statiqValues;
        }
     
        @Override
        public void mergeEntity(GestEntity val) {
    	   		em.getTransaction().begin();
    	   		em.merge(val);
    	   		em.getTransaction().commit();
        }
     
        @Override
        public Long persistEntity(GestEntity val) {
    	   em.getTransaction().begin();
    	   	em.persist(val);
    	   	 em.getTransaction().commit();
    	   return val.getId();
        }
     
        @Override
        public void persistEntityA(GestEntity val) {
    	   em.getTransaction().begin();
    	   	em.persist(val);
    	   	 em.getTransaction().commit();
        }
     
        @Override
        public void persistEntityNow(GestEntity val) {
    	   em.getTransaction().begin();
    	   	em.persist(val);
    	   	 em.flush();
    	   	 em.getTransaction().commit();
     
        }
     
        @Override
        public void deleteEntity(GestEntity val) {
    	   em.getTransaction().begin();
    	   	em.remove(val);
    	   	 em.getTransaction().commit();
     
        }
     
        @Override
        public void deleteEntitybyID(Integer id) {
    	   em.getTransaction().begin();
    	   GestEntity val = em.find(GestEntity.class, id.longValue());
    	   em.remove(val);
    	   em.getTransaction().commit();
        }
     
        @Override
        public void deleteEntitybyLongID(Long id) {
    	   em.getTransaction().begin();
    	   GestEntity val = em.find(GestEntity.class, id);
    	   em.remove(val);
    	   em.getTransaction().commit();
        }
     
        @Override
        public GestEntity findByIdLong(Long id) {
    	   Query q = em.createNamedQuery("GestManag.findByID");
            q.setParameter("id", id);
            GestEntity statiqValues = (GestEntity) q.getSingleResult();
    	   return statiqValues;
        }
     
     
    }
    et j'ai mis l'implementation de mon accès a statiqValue 2 posts au dessus

    je crois avoir trouvé une piste, comme j'ai des tables en cascade, j'ai une partie des entities bien remplies et l'autre vide, j'ai du foirer ma relation one to many .

    Merci de m'avoir forcé à réfléchir ...

  12. #12
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par Gaspard22 Voir le message
    Je suis en Java SE, tout dans un jar executable, pas de container EJB. Je suis obligé de laissé donc le chemin qui se trouve dans le répertoire de travail du jar, car le jar s'installe selon l'envie de l'utilisateur final.
    Ha désolé, j'ai tendance à associer d'office JPA à conteneur EJB Attention que en java SE, suivant que l'utilisateur double clique sur le jar ou qu'il face java -jar dans une ligne de commande, ton répertoire courant ne sera pas le même.

    Pour le reste je te laisse fouiller ta piste, si tu reviens, poste nous les query associée et du code un peu plus global reproduisant ton problème. Par exemple une méthode create qui crée plusieurs truc en test et un méthode get qui ne les trouve pas.

Discussions similaires

  1. Problème "Espace de nom" schéma XML
    Par chtrousselle dans le forum Développement de jobs
    Réponses: 1
    Dernier message: 27/06/2011, 11h00
  2. [AC-2003] Problème avec le nom de table
    Par tarnx dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 03/12/2009, 17h15
  3. [WB10] Problème avec des noms de tables
    Par chuky dans le forum WebDev
    Réponses: 6
    Dernier message: 02/11/2007, 09h45
  4. Problème d'accès aux tables d'un schéma
    Par joziel dans le forum Oracle
    Réponses: 8
    Dernier message: 13/07/2007, 17h40
  5. Problème de création de table sous MySql
    Par ducamba dans le forum Requêtes
    Réponses: 2
    Dernier message: 21/06/2003, 09h59

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