Enum from SelectOneMenu not persisted
olibutzki.oliver_libutzki.gmx.de Nov 23, 2009 11:39 AMHi everyone,
I have problem persisting an enum type in the database after I have chosen it within a SelectOneMenu. The enum which is persisted always is null, although I selected a value.
My enum (shortened):
package com.example.util; public enum Day{ MONDAY(1, "Monday"), TUESDAY(2, "Tuesday")); private String ivLabel = null; private int ivOridinal = 0; private Day(int aOrdinal, String aLabel) { ivOridinal = aOrdinal; ivLabel = aLabel; } public String getLabel() { return ivLabel; } @Override public String toString() { return getLabel(); } public int getOridinal() { return ivOridinal; } }
My entity (shortened):
package com.example.entity; @Entity public class Time implements Serializable { @Enumerated(EnumType.STRING) private Day ivDay; @Enumerated(EnumType.STRING) public Day getDay() { return ivDay; } public void setDay(Day aDay) { ivDay = aDay; } }
My action bean (shortened):
package com.example.action; @Name("MyAction") public class MyAction { @DataModel private List<Time> ivTimes; @Factory(value = "days") public Day[] getDays() { return Day.values(); } }
My xhtml-page (shortened):
<rich:dataTable id="editTable" var="item" value="#{ivTimes}"> <rich:column> <f:facet name="header"> <h:outputText value="Day"/> </f:facet> <h:selectOneMenu value="#{item.day}" id="day" required="false"> <s:convertEnum /> <s:selectItems hideNoSelectionLabel="true" value="#{MyAction.day}" var="day" label="#{day.label}"/> </h:selectOneMenu> </rich:column> </rich:dataTable >
That's it. The values stored in the database for the attribute day
are diplayed correctly, but after I have peristed my changes in the combo box all days are null in the database.
Does anyona have an diea?
Thank you so much in advance
Oliver