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 :

[ Hibernate ] Machine à etats


Sujet :

Hibernate Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 23
    Points : 19
    Points
    19
    Par défaut [ Hibernate ] Machine à etats
    Bonjour,

    j'ai une application avec un objet qui peut changer de classe pour pouvoir modifier son comportement (dans ce cas valide/ annulé / en attente).

    Ca fonctionne bien, jusque la j'ai pas de problème. Mais je n'arrive pas à faire le mapping pour hibernate. J'arrive bien à transférer qq chose a ma bdd en binaire, mais je ne peut pas le recupérer.

    Merci de votre aide !

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 71
    Points : 55
    Points
    55
    Par défaut
    developpe un peu si tu veux de l'aide. decris ton objet. ton mapiing.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 23
    Points : 19
    Points
    19
    Par défaut
    ok.

    J'ai un utilisateur qui dispose d'une collection de Commande qu'il a effectuées.

    La classe commande correspondante est composé d'un attribut produit et d' un attribut etat, de type EtatCommande (Interface que j'ai réalisée). 3 classes implémentent cette interface : EtatValide, EtatAnnule, EtatEnAttente.

    En fonction du déroulement de l'application, l'attribut Etat change de classe. Au départ il est a "EtatEnAttente", et ensuite il peut passer a "EtatValide" ou a "EtatAnnule".

    Voila 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
    22
    23
     
    <hibernate-mapping package="com.billet.metier.databeans">
    	<class name="Utilisateur" table="T_UTILISATEUR">
    		<id column="UT_ID" name="id" type="string" >
    			<generator class="assigned" />
    		</id>
          <set  lazy="true" name="produitAchete" table = "T_ACHETER">
    			<key column="UT_ID" />
    			<composite-element class="Commande">
    				<many-to-one name="produit" column="P_ID" class="Produit" />
    				<property name="qte" type="integer">
    					<column name="QTE"/>
    				</property>
                    <!-- ICI le mapping pour l'attribut etat, avec les valeur par défaut -->
    				<property name="etat" type="string">
    					<column name="ETAT"/>
    				</property>
     
    			</composite-element>
     
    		</set>
            </class>
    </hibernate-mapping>
    Je sais que le mapping pour l'attribut "etat" est faut mais je ne sais pas comment faire.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 23
    Points : 19
    Points
    19
    Par défaut
    en cherchant un peu plus dans la doc j'ai trouvé ma solution. Il faut créer un mapping de l'interface et des classes qui l'implémentent. Il suffit de renseigner les proxies.

    voila mon mapping pour l'interface et les classes:
    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
     
    <?xml version="1.0"?>
    <!DOCTYPE hibernate-mapping PUBLIC
    	"-//Hibernate/Hibernate Mapping DTD//EN"
    	"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd" >
     
    <hibernate-mapping package="com.billet.metier.util">
    	<class name="com.billet.metier.util.EtatCommande" table="T_ETAT" proxy="com.billet.metier.util.EtatCommande">
     
    	    <id column="ET_ID" name="id" type="int" >
    			<generator class="assigned" />
    		</id>
     
     
    		<discriminator column="ET_LIB" type="string"/>
     
    		<subclass name="EtatEnAttente" discriminator-value="En_Attente" proxy="com.billet.metier.util.EtatCommande">
     
    		</subclass>
    		<subclass name="EtatValide" discriminator-value="Valide" proxy="com.billet.metier.util.EtatCommande">
     
    		</subclass>
    		<subclass name="EtatAnnule" discriminator-value="Annule" proxy="com.billet.metier.util.EtatCommande">
     
    		</subclass>	
    	</class>
    </hibernate-mapping>
    et dans ma collection :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <many-to-one name="etat" column="ET_ID" class="com.billet.metier.util.EtatCommande" />

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

Discussions similaires

  1. machine etat marche pas
    Par philatex dans le forum LabVIEW
    Réponses: 3
    Dernier message: 02/04/2011, 22h05
  2. Boost statechart machine etat
    Par rer_moh1 dans le forum Boost
    Réponses: 6
    Dernier message: 08/05/2009, 19h56
  3. Accès dbus (hibernation machine)
    Par Respawner dans le forum Entrée/Sortie
    Réponses: 1
    Dernier message: 29/04/2009, 13h38
  4. etat de la machine
    Par krokmitaine dans le forum Langage
    Réponses: 4
    Dernier message: 26/06/2006, 19h41
  5. Machines d'etats
    Par Fooshi dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 18/03/2004, 10h19

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