У меня есть следующий фрагмент JSF:
<h:form>
<h:selectOneMenu value="#{customerBean.customer.country.id}" >
<f:selectItem itemLabel="-SELECT ONE-"/>
<f:selectItems value="#{customerBean.countries}" var="country" itemLabel="#{country.name}" itemValue="#{country.id}" />
</h:selectOneMenu>
<a4j:commandButton value="Update" action="#{customerBean.update}" execute="@form" />
</h:form>
И боб:
@ManagedBean
@ViewScoped
public class CustomerBean implements Serializable
{
private Customer customer;
private List<Country> countries;
public String update()
{
//These fields are not available for the user to edit.
customer.setStatus("M");
customer.setUpdateUser("ADMIN");
customer.setUpdateDate(new Date(Calendar.getInstance().getTimeInMillis()));
customerDAO.update(customer);
return null;
}
}
Всякий раз, когда я выбираю другую страну для данного клиента и пытаюсь сохранить ее, я получаюуказанная ошибка, как будто я пытался изменить идентификатор страны, а не просто привязывать экземпляр страны к клиенту.
Я использую Richfaces 4 / Tomcat 7 / Hibernate 3.6
Есть идеи, что я делаю не так?