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

NHibernate Discussion :

Problème de requete avec NHibernate


Sujet :

NHibernate

  1. #1
    Membre expérimenté
    Avatar de jbrasselet
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Mars 2006
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 022
    Points : 1 413
    Points
    1 413
    Par défaut Problème de requete avec NHibernate
    Bonjour,

    commencons par la description de ma solution :
    un projet web : couche présentation
    un projet business : couche service
    un projet DTOFactory : couche d'accès aux données
    un projet DTO : couche de données

    Base de données Oracle 11g.

    Je suis donc en train de tester NHibernate.
    Ci-joint la config nhibernate

    Code xml : 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
     
    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
       <configSections>
          <section name="hibernate-configuration" type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate" />
       </configSections>
     
       <!-- HIBERNATE ZONE -->
       <hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
          <session-factory>
             <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
             <!--
    			<property name="connection.driver_class">NHibernate.Driver.MySqlDataDriver</property>
    			-->
             <property name="dialect">NHibernate.Dialect.MySQLDialect</property>
             <property name="connection.connection_string">
                Data Source=OUTILS11;User Id=SPC_MNGR;Password=SPC_MNGR;Min Pool Size=10;Connection Lifetime=120;Connection Timeout=60;Incr Pool Size=5;Decr Pool Size=2;
             </property>
             <property name="show_sql">false</property>
             <mapping assembly="webGRAM.DTO"/>
          </session-factory>
       </hibernate-configuration>
    </configuration>

    Ensuite j'ai une classe qui s'appelle monServiceDTO qui représente ma table MON_SERVICE
    Code c# : 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
    namespace webGRAM.DTO
    {
       public class monServiceDTO : objectDTO
       {
          public virtual int svcId { get; set; }
          public virtual string svcLabel { get; set; }
          public virtual string svcDatacenter { get; set; }
          public virtual string svcTeam { get; set; }
          public virtual string svcFncpic { get; set; }
          public virtual string svcRef { get; set; }
     
          public monServiceDTO()
          {
          }
     
          public monServiceDTO(int pId, string pLabel, string pDatacenter, string pTeam, string pFncpic, string pRef)
          {
             svcId = pId;
             svcLabel = pLabel;
             svcDatacenter = pDatacenter;
             svcTeam = pTeam;
             svcFncpic = pFncpic;
             svcRef = pRef;
          }
       }
    }

    avec le mapping associé monServiceDTO.hbm.xml
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?xml version="1.0" encoding="utf-8" ?>
    <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" namespace="webGRAM.DTO" assembly="webGRAM.DTO">
       <class name="monServiceDTO" table="MON_SERVICE">
          <id name="svcId" column="SVC_ID" unsaved-value="0">
             <generator class="native" />
          </id>
          <version name="svcLabel" column="SVC_LABEL"/>
          <property name="svcDatacenter" column="SVC_DATACENTER" />
          <property name="svcTeam" column="SVC_TEAM" />
          <property name="svcFncpic" column="SVC_FNCPIC" />
          <property name="svcRef" column="SVC_REF" />
       </class>
    </hibernate-mapping>

    et enfin mon appel à la base de données :
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
            sessionFactory = new Configuration().Configure().BuildSessionFactory();
     
             // ouverture session 
             using (ISession session = sessionFactory.OpenSession())
             {
                ISQLQuery query = session.CreateQuery("SELECT svc_id, svc_lbl, svc_datacenter, svc_team, svc_fncpic, svc_ref FROM mon_service");
                IList<monServiceDTO> mesapplis = query.List<monServiceDTO>();
             }

    Lors de l'exécution j'obtiens l'erreur suivante :
    in expected: <end-of-text> (possibly an invalid or unmapped class name was used in the query) [SELECT svc_id, svc_lbl, svc_datacenter, svc_team, svc_fncpic, svc_ref FROM mon_service]
    J'ai lu qu'il fallait que mon fichier de description xml soit un Embedded File, ce que j'ai fait.

    Avez-vous une idée ?

  2. #2
    Membre expérimenté
    Avatar de jbrasselet
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Mars 2006
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 022
    Points : 1 413
    Points
    1 413
    Par défaut
    Finalement, j'ai trouvé une solution an passant par l'objet Criteria
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    IList<monServiceDTO> mesapplis = new List<monServiceDTO>();
    sessionFactory = new Configuration().Configure().BuildSessionFactory();
     
    // ouverture session 
    using (ISession session = sessionFactory.OpenSession())
    {
          monServiceDTO test = new monServiceDTO();
          ICriteria critere = session.CreateCriteria(typeof(monServiceDTO));
     
          mesapplis = critere.List<monServiceDTO>();
    }
     
    return mesapplis;

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

Discussions similaires

  1. Problème de requete avec like
    Par eric062 dans le forum ASP.NET
    Réponses: 8
    Dernier message: 21/10/2008, 17h18
  2. Problème de requete avec SUM
    Par fatiinfo dans le forum Hibernate
    Réponses: 2
    Dernier message: 27/08/2008, 16h18
  3. [Hibernate]Problème de requete avec "join fetch"
    Par gauloiskiki dans le forum Hibernate
    Réponses: 4
    Dernier message: 21/06/2006, 09h54
  4. Problème de requete avec type monétaire
    Par Pymm dans le forum ASP
    Réponses: 11
    Dernier message: 09/09/2005, 16h57
  5. Problème de requete avec Innodb
    Par silef dans le forum Requêtes
    Réponses: 3
    Dernier message: 14/04/2004, 12h54

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