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!