I found out that setting fetchtype.LAZY on a manyToOne association results in a 
JSF validation error for an selectOneMenu component. 

  | @ManyToOne(fetch=FetchType.LAZY)
  | public OrgUnit getOrgUnit() {
  | return orgUnit;
  | }
  | 


  | <t:selectOneMenu id="orgunit" required="true" value="#{activity.orgUnit}" 
converter="orgunitconverter">
  | <f:selectItems value="#{selectitemservice.orgUnitChoices}"/>
  | </t:selectOneMenu>
  | 

  | public Object getAsObject(FacesContext context, UIComponent comp,
  |     String value) throws ConverterException {               
  |             
  |     if (!StringUtils.isNumeric(value))
  |             return null ;
  |                             
  |     Long id = Long.valueOf(value);
  |     Object object = em.find(OrgUnit.class, id);
  | 
  |     return object ;
  | }
  | 
  | public String getAsString(FacesContext context, UIComponent component,
  |     Object object) throws ConverterException {
  |             
  |     if (object == null) {
  |             return null;
  |     }
  |     if (object instanceof OrgUnit) {
  |             OrgUnit orgUnit = (OrgUnit)object ;
  |             String returnString = orgUnit.getId().toString();
  |             return returnString;
  |     }
  |     return null ;
  | }
  | 

The converter for OrgUnit seems to work: All units are displayed in the 
drop-down box and the current unit is also selected correctly in the box.
But submitting a page with this component shows a validation error saying: 
"orgunit": Value is not a valid option.
There are many things which could go wrong on my side but just removing the 
'fetch=fetchtype.LAZY' (and therefore implicitly changing fetchtype to EAGER) 
results in a perfect working dialog. I suspect the use of a proxy for lazy 
fetching in Hibernate causing this, but debugging and tracing the converter and 
equals methods doesn't help me.

Any ideas would be appreciated.

--
Axel



View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3983241#3983241

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3983241
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to