Probleme de methode paramétrable

jowaylila Messages postés 16 Date d'inscription jeudi 15 novembre 2007 Statut Membre Dernière intervention 10 octobre 2008 - 10 oct. 2008 à 01:27
jowaylila Messages postés 16 Date d'inscription jeudi 15 novembre 2007 Statut Membre Dernière intervention 10 octobre 2008 - 10 oct. 2008 à 12:57
bonjour,
je travaille avec struts et hibernate,et j'ai un probleme assez bizard
j'ai 2 tables:ObjIndiv et Phase qui ont une association many to one.
dans ma jsp j'ai 2 listes deroulante,l'une pour ObjIndiv et l'autre pour Phase,et lorsque je selectionne un objIndiv,il faut que la liste phase se met à jour,pour cela je recupère l'id(codeObjIndiv) de la valeur selectionnée via ajax et je le retourne comme paramètre dans une methode qui me cherche les phases,mais ça me retourne une liste vide.
voici la table Phase:phase.hbm.xml

<hibernate-mapping>
<class name="data.Phase" table="PHASE" schema="BASE">

<column name="IDPHASE" precision="22" scale="0" />
<generator class="increment"></generator>

<many-to-one name="objIndiv" class="data.ObjIndiv" fetch="select">
<column name="CODE_OBJ_INDIV" length="20" not-null="true" />
</many-to-one>
.............:

la classe phase

public class Phase extends AbstractPhase implements java.io.Serializable {

// Constructors

/** default constructor */
public Phase() {
}

/** minimal constructor */
public Phase(ObjIndiv objIndiv, Long numphase) {
super(objIndiv, numphase);
}

/** full constructor */
public Phase(ObjIndiv objIndiv, String libellePhase, Date dateDeb, Date dateFin, String duree, Long numphase, Set necessiters) {
super(objIndiv, libellePhase, dateDeb, dateFin, duree, numphase, necessiters);
}

la methode qui retourne les phases

public static List getPhase(String code){
Session session = HibernateSessionFactory.getSession();
List list = null;



try{
Query query=session.createQuery(" from Phase where objIndiv= '"+code+"'");


list =query.list();


}catch(Exception ex){
ex.printStackTrace();
}
return list;
}

le probleme c'est quand je rentre le code manuellement,genre:

Query query=session.createQuery(" from Phase where objIndiv= 'oo'");

ça fonctionne parfaitement,ce probleme me rend vraiment dingue
merci de bien vouloir m'aider

1 réponse

jowaylila Messages postés 16 Date d'inscription jeudi 15 novembre 2007 Statut Membre Dernière intervention 10 octobre 2008
10 oct. 2008 à 12:57
desolée pour l'affichage,je reposte correctement:


je travaille avec struts et hibernate,et j'ai un probleme assez bizard
j'ai 2 tables:ObjIndiv et Phase qui ont une association many to one.
dans ma jsp j'ai 2 listes deroulante,l'une pour ObjIndiv et l'autre pour Phase,et lorsque je selectionne un objIndiv,il faut que la liste phase se met à jour,pour cela je recupère l'id(codeObjIndiv) de la valeur selectionnée via ajax et je le retourne comme paramètre dans une methode qui me cherche les phases,mais ça me retourne une liste vide.
voici la table Phase:phase.hbm.xml :


<hibernate-mapping>








<
class
name
=

"data.Phase"
table
=

"PHASE"
schema
=

"BASE"
>






<
id
name
=

"idphase"
type
=

"java.lang.Long"
>






<
column
name
=

"IDPHASE"
precision
=

"22"
scale
=

"0"
/>






<
generator
class
=

"increment"
></
generator
>






</
id
>






<
many-to-one
name
=

"objIndiv"
class
=

"data.ObjIndiv"
fetch
=

"select"
>






<
column
name
=

"CODE_OBJ_INDIV"
length
=

"20"
not-null
=

"true"
/>






</
many-to-one
>






<
property
name
=

"libellePhase"
type
=

"java.lang.String"
>






<
column
name
=

"LIBELLE_PHASE"
length
=

"100"
/>






</
property
>.................

la classe phase :

public





class

Phase

extends

AbstractPhase

implements


java.io.Serializable {










// Constructors









/**



default



constructor



*/







public

Phase() {}


/**



minimal



constructor



*/







public

Phase(ObjIndiv objIndiv, Long numphase) {



super

(objIndiv, numphase); }


/**



full



constructor



*/







public

Phase(ObjIndiv objIndiv, String libellePhase, Date dateDeb, Date dateFin, String duree, Long numphase, Set necessiters) {



super

(objIndiv, libellePhase, dateDeb, dateFin, duree, numphase, necessiters); }


la methode qui retourne les phases :
public

static List getPhase(String code){Session session = HibernateSessionFactory. getSession ();

List list =

null ;

try{Query query =session.createQuery(

" from Phase where objIndiv= '"+code+
"'");

list =query.list();

}

catch (Exception ex){ex.printStackTrace();

}

return list;}

le probleme c'est quand je rentre le code manuellement,genre:
Query query =session.createQuery(" from Phase where objIndiv= 'oo'");

ça fonctionne parfaitement,ce probleme me rend vraiment dingue
merci de bien vouloir m'aider
0
Rejoignez-nous