-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 6 posts ] 
Author Message
 Post subject: Hibernate et Flex
PostPosted: Mon Feb 11, 2008 3:52 am 
Newbie

Joined: Sun Feb 10, 2008 2:26 pm
Posts: 6
Bonjour!
JE travaille sur un projet mettant en oeuvre Hibernate, Java, LiveCycle Data Service, MySQL et Flex

j'ai du mal à utiliser une table qui a deux attributs comme clé primaire dans le fichier .hbm.xml du coté de Hibernate et aussi Data-mamagement-config.xml du coté de Flex!

Voici la description de mon problème

J'ai dans la base de donnée MySQL 3 tables
personnes (pers_Id, nom, prenom, sexe, age)
Adresse(Adr_Id, designation, codepostal,ville)
PersonAdress(Pers_Id, Adr_Id)


J'aimerai réussir à mapper correctement cces tables dans le fichier .hbm.xml afin qu'il puisse etre utilisé par Hibernate, puis écrire le bon code de balise pour <destination> dans le fichier data-management-config.xml

Le message d'erreur au moment ou je lance le serveur "Integrated LiveCycle Data Service Server" j'ai le message d'erreur suivant:

11/02/ 08:42:01 user MessageBrokerServlet: **** MessageBrokerServlet failed to initialize due to runtime exception: org.hibernate.MappingException: could not read mappings from ressource: projet/Person_address.hbm.xml

Quelqu'un pourrait il m'aider s'il vous plait?


Top
 Profile  
 
 Post subject:
PostPosted: Mon Feb 11, 2008 4:44 am 
Newbie

Joined: Fri Jan 18, 2008 12:34 pm
Posts: 9
L'exception indiquée dans le log signifie qu'Hibernate ne trouve pas le fichier de mapping projet/Person_address.hbm.xml .

Ca ressemble à un pb de déploiement, tu as du paramétré dans ton fichier de conf HB un chemin local qui n'existe plus sur le serveur où tu déploies.


Top
 Profile  
 
 Post subject:
PostPosted: Mon Feb 11, 2008 5:25 am 
Newbie

Joined: Sun Feb 10, 2008 2:26 pm
Posts: 6
Merci pour votre remarque.
Mais le fichier est bien présent.

les 3 classes java sont présentes aussi dans le même répertoire que les fichiers , c'est à dire dans "projet".

Les fichier action Script aussi sont aux bon endroit.

le mapping de la table Personnes fonctionne sans problème.
Le mapping de la table Adresse également fonctionne correctement.
C'est celui de PersonAdress qui ne fonctionne pas.
La documentation de Hibernate n'est pas très clair sur le mapping des associations ou des tables de jointure.

J'ai fait les vérifications près de 10 fois et sur plusieurs jours.
Le résultat est le même.


Top
 Profile  
 
 Post subject:
PostPosted: Wed Feb 20, 2008 11:13 am 
Newbie

Joined: Sun Feb 10, 2008 2:26 pm
Posts: 6
Une solution
Il s'agit de celle qui tourne sur mon PC à moi.

4 fichiers par tables


Pour la table personnes
fichier "Personnes.hbm.xml"

<hibernate-mapping>
<class name="Projet.Personnes" table="personnes">
<id name="pers_Id" column="pers_Id">
<generator class="native"/>
</id>

<property name="nom"/>
<property name="prenom"/>
<property name="sexe"/>
<property name="age"/>
</class>
<!-- This is a named query that we will use later -->
<query name="all.personnes">From Personnes</query>
</hibernate-mapping>


fichier "Personnes.java"

package Projet;

public class Personnes{

private int pers_Id;
private String nom;
private String prenom;
private char sexe;
private int age;



public int getPers_Id(){
return this.pers_Id;
}

public void setPers_Id(int pi ){
this.pers_Id = pi;
}

/**autre accesseurs**/

}

dans le fichier "data-management-config.xml"
ajouter la balise destination


<destination id="personnes.hibernate">
<adapter ref="java-dao" />
<properties>
<use-transactions>true</use-transactions>
<source>flex.data.assemblers.HibernateAssembler</source>
<scope>application</scope>
<metadata>
<!--This is the unique identifier from the hibernate-entity bean -->
<identity property="pers_Id"/>
</metadata>

<network>
<session-timeout>20</session-timeout>
<paging enabled="false" pageSize="10" />
<throttle-inbound policy="ERROR" max-frequency="500"/>
<throttle-outbound policy="REPLACE" max-frequency="500"/>
</network>
<server>
<hibernate-entity>Projet.Personnes</hibernate-entity>
<fill-method>
<name>fill</name>
<params>java.util.List</params>
</fill-method>
<fill-configuration>
<use-query-cache>false</use-query-cache>
<allow-hql-queries>true</allow-hql-queries>
</fill-configuration>
</server>
</properties>
</destination>


le fichier "Personnes.as"
package Projet
{
[Managed]
[RemoteClass(alias="Projet.Personnes")]
public class Personnes
{
public function Personnes()
{

}
private pers_Id:int;
private nom:String;
private prenom:String;
private sexe:char;
private age:int;

}
}


Top
 Profile  
 
 Post subject:
PostPosted: Wed Feb 20, 2008 11:30 am 
Newbie

Joined: Sun Feb 10, 2008 2:26 pm
Posts: 6
faire pareil pour l'autre tables (adresse)
Adresse(Adr_Id, designation, codepostal,ville)

mais pour la table

PersonAdress(Pers_Id, Adr_Id)



apercu des 4 fichiers

fichier PersonAdress.hbm.xml

<hibernate-mapping>
<class name="Projet.PersonAdress" table="personadress">
<composite-id>
<key-property name="Pers_Id" column="Pers_Id"/>
<key-property name="Adr_Id" column="Adr_Id"/>
</composite-id>

</class>
<!-- This is a named query that we will use later -->
<query name="all.personadress">From PersonAdress</query>
</hibernate-mapping>

fichier , PersonAdress.java


package Projet;

import java.io.*;
public class PersonAdress implements Serializable{

private int Pers_Id;
private int Adr_Id;


/*** accsseurs***/
}

je n'ai pas implémenté equals() et hashCode() bien que celàà fut conseillé pour certain cas de figure

voir paragraphe 5.1.5 composite-Id
(http://www.hibernate.org/hib_docs/v3/re ... pping.html)


fichier data-management-config.xml

ajouter la balise destination

<destination id="personadress.hibernate">
<adapter ref="java-dao" />
<properties>
<use-transactions>true</use-transactions>
<source>flex.data.assemblers.HibernateAssembler</source>
<scope>application</scope>
<metadata>
<!--This is the identifier from the hibernate-entity bean -->
<identity>Pers_Id</identity>
<identity>Adr_Id</identity>
</metadata>

<network>
<session-timeout>20</session-timeout>
<paging enabled="false" pageSize="10" />
<throttle-inbound policy="ERROR" max-frequency="500"/>
<throttle-outbound policy="REPLACE" max-frequency="500"/>
</network>
<server>
<hibernate-entity>Projet.PersonAdress</hibernate-entity>
<fill-method>
<name>fill</name>
<params>java.util.List</params>
</fill-method>
<fill-configuration>
<use-query-cache>false</use-query-cache>
<allow-hql-queries>true</allow-hql-queries>
</fill-configuration>
</server>
</properties>
</destination>


le fichier PersonAdress.as


package Projet
{
[Managed]
[RemoteClass(alias="Projet.PersonAdress")]
public class PersonAdress
{
public function PersonAdress()
{

}
private Pers_Id:int;
private Adr_Id:int;

}
}


les modification majeurs sont mise en gras dans les deux fichiers correspondant par l'extension
Comparer Peronnes.hbm.xml et PersonAdress.hbm.xml
comparer les deux balises destination dans data-management-config.xml etc ...


Top
 Profile  
 
 Post subject:
PostPosted: Wed Feb 20, 2008 11:34 am 
Newbie

Joined: Sun Feb 10, 2008 2:26 pm
Posts: 6
pour la modification de data-management-config.xml de flex voir l'url suivante
http://livedocs.adobe.com/coldfusion/8/ ... ce_04.html


definition :

identity property:

The property or list of properties that are the primary key in the database.


enjoy


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 6 posts ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.