3 Replies Latest reply on Nov 12, 2007 12:22 PM by Pete Muir

    converting time for selectOneMenu displaying time only

    Damian Harvey Master

      I have an entity with a field 'openTime' that is a MySQL TIME datatype. Hibernate has converted this into an entity field as such:

      @Temporal(TemporalType.TIME)
       @Column(name = "OPEN_TIME", length = 0)
       public Date getOpenTime() {
       return this.openTime;
       }

      I need to allow a user to enter a time on the page. Instead of allowing free text I am using an h:selectOneMenu and a list of times on the half hour (eg. "00:00", "00:30", etc). I can select a time from the list and it will save it in the database. However when I go to edit the record, the select list is not able to select the value that was already saved (ie. set one of the OPTIONs to selected="true").

      I ran this through the debugger and the problem is that the com.sun.facces.renderkit.html_basic.MenuRenderer cannot convert from java.util.Date to java.sql.Time. The error produced (and swallowed on line 537) is:
      Cannot convert 1/1/70 7:00 AM of type class java.util.Date to class java.sql.Time


      What is my best option here? Should I go for a custom converter (I haven't done one yet) rather than s:convertDateTime? Or is there an option I can set on the entity definition (maybe 'columnDefinition' on @Column)?

      Any advice is very much appreciated.

      Thanks,

      Damian.