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 :

Problème avec "formula" sur un property


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de nighthammer
    Profil pro
    Développeur Java
    Inscrit en
    Juillet 2005
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2005
    Messages : 122
    Par défaut Problème avec "formula" sur un property
    Bonjour,

    Je dois faire une jointure entre deux tables :
    - une table PROJET,
    - une table DEVIS.
    Un devis n'a qu'un seul projet et un projet n'a qu'un seul devis. Je n'ai pas moyen de modifier ces tables car elles ont été créées pour un autre programme.

    Dans la nouvelle application, je dois faire un mapping pour un objet Projet qui se base sur la table PROJET. Et je voudrais ajouter un attribut numeroDevis qui va chercher la bonne valeur dans la table DEVIS. Je n'ai pas voulu faire un objet Devis parce que je n'ai pas besoin du reste des informations.

    J'ai donc fait ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <property name="numeroDevis">
      <formula>(SELECT d.NUMERODEVIS FROM DEVIS d WHERE d.IDPROJET=idProjet)</formula>
    </property>
    et ça me renvoi l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    org.springframework.orm.hibernate3.HibernateJdbcException: JDBC exception on Hibernate data access; nested exception is org.hibernate.exception.SQLGrammarException: could not load an entity:
    Est ce que vous avez une idée ? Est ce que vous auriez fait autrement ?

    Merci.

  2. #2
    Membre Expert Avatar de willoi
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    1 355
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 355
    Par défaut
    Fais voir ton mapping sur la table DEVIS

  3. #3
    Membre confirmé Avatar de nighthammer
    Profil pro
    Développeur Java
    Inscrit en
    Juillet 2005
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2005
    Messages : 122
    Par défaut


    Je n'en ai pas.

    Il en faut absolument un ?

    Vu que tu me le demandes je suppose que oui, mais vu que je ne gère pas d'objets "Devis" dans mon application, je pensais que je n'en avais pas besoin.

  4. #4
    Membre Expert Avatar de willoi
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    1 355
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 355
    Par défaut
    Non ce n'est pas necessaire. desole j'avais pas bien regarde.

    Par contre ton sql est etrange pourquoi faire: WHERE d.IDPROJET=idProjet

    Le mieux ca serait que tu montres la structure de tes tables, ainsi que le mapping de PROJET.
    Et l'erreur complete

    Ah regarde par la aussi, quelques exemples de mapping avec formula :
    http://www.hibernate.org/hib_docs/v3...ings.html#misc

  5. #5
    Membre confirmé Avatar de nighthammer
    Profil pro
    Développeur Java
    Inscrit en
    Juillet 2005
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2005
    Messages : 122
    Par défaut
    Voici la structure simplifiée de mes tables :

    DEVIS
    - IDDEVIS
    - IDPROJET
    - NUMERODEVIS
    - ...

    PROJET
    - IDPROJET
    - CDPROJET
    - LBRPOJET
    - ...

    et voici mon mapping :

    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
     
    <!DOCTYPE hibernate-mapping PUBLIC
    	"-//Hibernate/Hibernate Mapping DTD//EN"
    	"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
     
    <hibernate-mapping>
    <class name="Projet" table="PROJET" lazy="false">
      <id name="intId" column="IDPROJET">
      	<generator class="sequence">
      		<param name="sequence">SEQ_PROJET</param>
      	</generator>
      </id>
     
      <property name="strCode" column="CDPROJET"></property>
      <property name="strLibelle" column="LBPROJET"></property>
      <property name="strNumeroDevis">
      	<formula>(SELECT d.NUMERODEVIS FROM DEVIS d WHERE d.IDPROJET=intId)</formula>
      </property>
     
    </class>
    </hibernate-mapping>
    Il doit surement y avoir un truc que j'ai pas bien compris sur l'utilisation de la balise "formula" mais je ne vais pas trop quoi.

    Voila l'erreur que j'obtiens :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Cause : javax.servlet.jsp.JspException: javax.faces.el.EvaluationException: Error getting property 'lstListeRecettes' from bean of type ihm.BeanListeRecettes: org.springframework.orm.hibernate3.HibernateJdbcException: JDBC exception on Hibernate data access; nested exception is org.hibernate.exception.SQLGrammarException: could not load an entity: [metier.Projet#1] [javax.servlet.ServletException]
    javax.servlet.ServletException: javax.servlet.jsp.JspException: javax.faces.el.EvaluationException: Error getting property 'lstListeRecettes' from bean of type ihm.BeanListeRecettes: org.springframework.orm.hibernate3.HibernateJdbcException: JDBC exception on Hibernate data access; nested exception is org.hibernate.exception.SQLGrammarException: could not load an entity: [metier.Projet#1]
    	at org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:821)
    	at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:758)
    J'ai pas tout mis parce que je pense que le principal est là. Mais si tu en veux plus, dis le moi.

  6. #6
    Membre Expert Avatar de willoi
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    1 355
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 355
    Par défaut
    Apparament ton probleme vient de la propriete lstListeRecettes.

    Fais voir ta classe BeanListeRecettes.

Discussions similaires

  1. [Shell] Problème avec le Back-quote (ksh)
    Par bob94700 dans le forum Linux
    Réponses: 3
    Dernier message: 27/01/2008, 12h45
  2. Sudo problème avec les simples quotes
    Par Tronche dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 23/03/2007, 12h02
  3. [MySQL] Problème avec un double quote
    Par wormseric dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 26/01/2007, 14h44

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