5 Replies Latest reply on Oct 4, 2007 4:33 AM by David Joseph

    [2.0.0.CR1] selectManyListbox + convertEntity yields convers

    J Peschier Newbie

      When selecting two items from selectManyListbox I get the following validation error:

      Conversion Error setting value '7 9' for '#{workgroupSelectedStudents}'.

      Evidently person with Id 7 and 9 were selected, but what is causing this validation error? I tried overriding equals() and to match objects on their @Id field. This yielded the same result. Can anyone shed some light on this? I am deploying this on Jboss 4.2.0.GA and Seam 2.0.0.GA.

       <h:outputLabel for="studentlist" value="Pick students" />
       <h:selectManyListbox id="studentlist" size="14" required="true" value="#{workgroupSelectedStudents}">
       <s:selectItems value="#{workgroupAvailableStudents}" var="student" label="#{student.firstName} #{student.prefix} #{student.lastName}"/>

      public class WorkgroupStudentDetail implements WorkgroupStudentDetailInterface {
       private EntityManager entityManager;
       @In(required = false)
       @Out(required = false)
       private Collection<Person> workgroupAvailableStudents;
       @Out(required = false, scope = ScopeType.CONVERSATION)
       private Collection<Person> workgroupSelectedStudents;
       @Begin (join = true, flushMode = FlushModeType.MANUAL)
       public void findStudents() {
       try {
       workgroupAvailableStudents = (Collection<Person>) entityManager.createQuery("SELECT DISTINCT Object(per) FROM Person per").getResultList();
       } catch (Exception e) {
       log.error("Exception occurred in findStudents() [WorkgroupStudentDetail].", e);
       // ..

      @Table(name = "person")
      public class Person implements Serializable {
       private static final long serialVersionUID = 7690407363935244693L;
       private Long personId;
       private School school;
       private String firstName;
       private String prefix;
       private String lastName;
       private Gender gender;
       private Date dateOfBirth;
       private String placeOfBirth;
       private String mobile;
       private String email;
       private String nationality;
       private String edexKey;
       private String pgnoNumber;
       private Date startDate;
       private Date endDate;
       private Boolean active;
       private Boolean critical;
       public String toString() {
       return getPersonId() == null ? null : getPersonId().toString();
       @GeneratedValue(strategy = GenerationType.IDENTITY)
       @Column(name = "person_id")
       public Long getPersonId() {
       return personId;
       protected void setPersonId(Long personId) {
       this.personId = personId;
      // ..