Bonjour,
A savoir : J'utilise Struts2 + Hibernate + Dojo
J'ai un formulaire dans lequel j'ai un TimeTextBox dans un formulaire, et je n'arrive pas à l'insérer dans ma base Postgres (C'est un peu le même probleme que sur ce topic)
Voici mon code :
Le problème est que la "value" générée (si je sélectionne "10:00" par ex) est du type : Date {Thu Jan 01 1970 10:00:00 GMT+0100}, ce qui ne plait pas du tout à hibernate. (Ma propriété "heure" de ma classe "maClasse" est de type "TIME" - Voir code ci-dessous- , idem dans la base. Avant elle etait de type "DATE" et j'avais le même problème)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <s:textfield name="maClasse.heure" data-dojo-type="dijit.form.TimeTextBox" data-dojo-props="name: 'maClasse.heure'"/>
maClasse.hbm.xml :
MaClasse.java :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <property name="heure" type="time"> <column name="heure" length="14" not-null="false" /> </property>
J'ai essayé de le "feinter" en mettant un champ type "hidden" en dessous de mon TimeTextBox, pour lui passer la valeur affichée dans le TimeTextBox, ce qui me permettrait d'envoyer un String à Hibernate, au lieu d'un objet Date (j'ai pu résoudre mon problème du lien précédent de cette façon).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 private Date heurePremVisite; @Temporal(TemporalType.TIME) @Column(name = "heure_prem_visite", nullable = true, length = 14) public Date getHeurePremVisite() { return this.heurePremVisite; }
Ce qui donne :
Ce qui me permet bien d'envoyer "10:00" en String, mais j'ai toujours une erreur du type:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 <s:textfield name="heure_old" data-dojo-type="dijit.form.TimeTextBox" data-dojo-props="onChange:function(){ document.getElementById('add_heure').value=this.displayedValue;}, onBlur:function(){ document.getElementById('add_heure').value=this.displayedValue;}"/> <s:hidden id="add_heure" name="maClasse.heure" data-dojo-type="dijit.form.TextBox" data-dojo-props="name: 'maClasse.heure'"/>.
Code : Sélectionner tout - Visualiser dans une fenêtre à part ATTENTION: Error setting expression 'maClasse.heure' with value '[Ljava.lang.String;@764c0de'
J'ai testé d'insérer "à la main" un enregistrement dans la base (avec SQLManager), j'ai vu que par défaut ca me demande de l'insérer sous la forme : HH:MM:SS . J'ai donc essayé de rentrer directement ca dans mon champ hidden (que j'ai passé en visible pour le test) => Idem.
J'ai ensuite essayé d'exporter l'enregistrement que j'avais inséré a la main dans ma base, en .sql pour voir le code généré => Je remarque que l'heure est sous la forme : HH:MM:SS.milliSec. Je retente de saisir une valeur de cette forme dans mon textfield => Idem encore ...
Je bloque vraiment et j'ai vraiment besoin de résoudre ce soucis, quelqu'un aurait il une idée svp ?
Partager