Getting closer. I removed the room dropdown lookup logic from the jsp and it complianed about calling personEdtor.poo. I changed it back to personEditor.create and it added the record. So it appears there is something that occurs when the dropdown room lookup logic is inserted in the jsf:
JSF: | <h:selectOneMenu value="#{roomFinder.example}" converter="org.jboss.seam.EntityConverter"> | <f:selectItems value="#{roomListByOrganization}" /> | </h:selectOneMenu> | | RoomFinderBean | package testSeam; | | // Generated Oct 6, 2006 12:55:26 AM by Hibernate Tools 3.2.0.beta7 | | import java.util.HashMap; | import java.util.List; | import java.util.ArrayList; | import java.util.Iterator; | import java.util.Map; | import java.util.Map.Entry; | import java.util.TreeMap; | import javax.ejb.Remove; | import javax.ejb.Stateful; | import javax.interceptor.Interceptors; | import javax.persistence.EntityManager; | import javax.persistence.Query; | import javax.faces.component.UISelectItems; | import javax.faces.model.SelectItem; | import org.jboss.seam.ScopeType; | import org.jboss.seam.annotations.Destroy; | import org.jboss.seam.annotations.In; | import org.jboss.seam.annotations.Out; | import org.jboss.seam.annotations.Name; | import org.jboss.seam.annotations.RequestParameter; | import org.jboss.seam.annotations.Scope; | import org.jboss.seam.annotations.Factory; | | import org.jboss.seam.selectitems.annotations.*; | | import org.jboss.seam.annotations.datamodel.DataModel; | import org.jboss.seam.annotations.datamodel.DataModelSelection; | import org.jboss.seam.ejb.SeamInterceptor; | | @Name("roomFinder") | @Stateful | @Scope(ScopeType.SESSION) | @Interceptors(SeamInterceptor.class) | public class RoomFinderBean implements RoomFinder { | | @Out | private Room example = new Room(); | | public Room getExample() { | return example; | } | | @In(required=false) | private Login login; | | private int pageNumber = 0; | private int pageSize = 25; | | public void setPageSize(int size) { | pageSize = size; | } | | public int getPageSize() { | return pageSize; | } | | public boolean isPreviousPage() { | return roomList != null && pageNumber > 0; | } | | public boolean isNextPage() { | return roomList != null && roomList.size() == pageSize; | } | | @DataModel | private List<Room> roomList; | | // @Out | // @SelectItems(valueStrategy=SelectItems.Strategy.OBJECT, labelMethod="getname") | // private List<Room> roomListByOrganization; | @Out | @SelectItems(label="name") | private List<Room> roomListByOrganization; | | @DataModelSelection | private Room selectedRoom; | | @In(create = true) | private EntityManager entityManager; | | private void executeQuery() { | Map<String, Object> parameters = new HashMap<String, Object>(); | StringBuffer queryString = new StringBuffer(); | if (example.getId() != 0) { | queryString.append(" and room.id = :id"); | parameters.put("id", example.getId()); | } | if (example.getName() != null && example.getName().length() > 0) { | queryString.append(" and room.name like :name"); | parameters.put("name", '%' + example.getName() + '%'); | } | if (example.getOrganizationId() != 0) { | queryString.append(" and room.organizationId = :organizationId"); | parameters.put("organizationId", example.getOrganizationId()); | } | if (example.getCapacity() != 0) { | queryString.append(" and room.capacity = :capacity"); | parameters.put("capacity", example.getCapacity()); | } | if (queryString.length() == 0) { | queryString.append("select room from Room room"); | } else { | queryString.delete(0, 4).insert(0, | "select room from Room room where"); | } | | if (order != null) { | queryString.append(" order by room.").append(order); | if (descending) | queryString.append(" desc"); | } | | Query query = entityManager.createQuery(queryString.toString()); | for (Entry<String, Object> param : parameters.entrySet()) { | query.setParameter(param.getKey(), param.getValue()); | } | | roomList = (List<Room>) query.setMaxResults(pageSize).setFirstResult( | pageSize * pageNumber).getResultList(); | } | | @SuppressWarnings("unchecked") | @Factory("roomListByOrganization") | public void getRoomListByOrganization() { // f:selectItems value | Map<String, Object> parameters = new HashMap<String, Object>(); | StringBuffer queryString = new StringBuffer(); | Users loggedInUser = login.getInstance(); | | queryString.append(" and room.organizationId = :organizationId"); | parameters.put("organizationId", loggedInUser.getOrganizationId()); | | if (queryString.length() == 0) { | queryString.append("select room from Room room"); | } else { | queryString.delete(0, 4).insert(0, | "select room from Room room where"); | } | | if (order != null) { | queryString.append(" order by room.").append(order); | if (descending) | queryString.append(" desc"); | } | | Query query = entityManager.createQuery(queryString.toString()); | for (Entry<String, Object> param : parameters.entrySet()) { | query.setParameter(param.getKey(), param.getValue()); | } | roomListByOrganization = query.getResultList(); | | List selectItems=new ArrayList(); | for (Iterator iterator = roomListByOrganization.iterator(); iterator.hasNext();) | { | Room value = (Room)iterator.next(); | SelectItem item = new SelectItem(value, value.getName()); | selectItems.add(item); | } | | roomListByOrganization = selectItems; | | // return roomListByOrganization; | } | | public String findFirstPage() { | pageNumber = 0; | executeQuery(); | return null; | } | | public String findNextPage() { | pageNumber++; | executeQuery(); | return null; | } | | public String findPreviousPage() { | pageNumber--; | executeQuery(); | return null; | } | | public void refresh() { | if (roomList != null) | executeQuery(); | } | | public String clear() { | roomList = null; | example = new Room(); | return null; | } | | public Room getSelection() { | return entityManager.merge(selectedRoom); | } | | @Destroy | @Remove | public void destroy() { | } | | private String order; | | private boolean descending = false; | | @RequestParameter | private String orderBy; | | public String reorder() { | if (orderBy.equals(order)) { | descending = !descending; | } else { | descending = false; | } | order = orderBy; | executeQuery(); | return null; | } | | } | What am I missing here? View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3979898#3979898 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3979898 _______________________________________________ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user