Error selecting object problem
jamesjmp Nov 6, 2007 12:28 PMhi,
In a form I´ve a h:selectOneMenu which is filled according to the values of a List.
<s:decorate id="firmCodeDecoration" template="layout/edit.xhtml"> <ui:define name="label">#{messages['Firm']}</ui:define> <h:selectOneMenu value="#{rstReportHome.instance.firm}" required="true" id="firm"> <s:selectItems value="#{firmList.resultList}" var="firm" label="#{firm.firmCode}" /> <s:convertEntity/> <a:support event="onchange" reRender="firmCodeDecoration"/> </h:selectOneMenu> </s:decorate>
Component firmList is seam-gened with just a simple query this way:
@Override public String getEjbql() { return "select firm from Firm firm"; }
I want in my selectOneMenu to display all the values of table Firm, but I do want an extra value as well.
Let´s call it "Automatic".
I´ve added the following to component firmList:
@Override public List<Firm> getResultList() { System.out.println("firmList getResultList!!"); Firm auto = new Firm(); auto.setFirmCode("AUTOMATIC"); CfgCurrency cfgCurrency = new CfgCurrency(); cfgCurrency.setCurrencyCode(60); auto.setCfgCurrency(cfgCurrency); List<Firm> firmas = new ArrayList<Firm>(); firmas.add(auto); firmas.addAll(super.getResultList()); System.out.println("firmas.size: "+firmas.size()); return firmas; }
After adding this, selectOneMenu displays AUTOMATIC value as well as the rest retrieved by the query.
But when I press a button that performs persist() ajax validation displays red message besides with "Error selecting object" only If I choose Automatic option.
I guess it must be something related with s:convertEntity, but I´m not sure how to tackle it.
This is firm object:
@Entity @Table(name = "FIRM", catalog = "prisk") public class Firm implements java.io.Serializable { private String firmCode; private CfgCurrency cfgCurrency; private String firmDescription; private Set<RstReport> rstReports = new HashSet<RstReport>(0); private Set<Fund> funds = new HashSet<Fund>(0); public Firm() { firmCode = ""; firmDescription = ""; }
What is the best way to add an extra value (apart from those provided by the query) to be displayed in a selectOneMenu?
If overriding getResultList is one of the ways, why I´m having that validation problem?
thanks in advance!