Seam Search
malini Oct 14, 2011 12:52 AMHi All,
I'm using seam 2.0.1 and  Jboss-4.2.0
I have following issue in my search page.
When I'm going to search from Customer or Product , it gives me following error on JBOSS
09:33:27,471 WARN  [lifecycle] /M150spaceAllocationList.xhtml @31,90 value="#{m150spaceAllocationList.m150spaceAllocation.m168custsup.id.customerCode}": Target Unreachable, 'm168custsup' returned null on 'org.dms.oilbank.entity.M150spaceAllocation'
javax.el.PropertyNotFoundException: /M150spaceAllocationList.xhtml @31,90 value="#{m150spaceAllocationList.m150spaceAllocation.m168custsup.id.customerCode}": Target Unreachable, 'm168custsup' returned null on 'org.dms.oilbank.entity.M150spaceAllocation'
....This is my xhtml page 
<rich:simpleTogglePanel label="Space Allocation Search"
                    switchType="ajax">
                    <s:decorate template="layout/display.xhtml">
                         <ui:define name="label">Space Allocation ID</ui:define>
                         <h:selectOneMenu id="spaceAllocationId"
                              value="#{m150spaceAllocationList.m150spaceAllocation.id.spaceAllocationId}">
                              <f:selectItem itemLabel="Select Space Allocation ID" itemValue="" />
                              <f:selectItems value="#{populateAction.spaceAllowList}" />
                         </h:selectOneMenu>
                    </s:decorate>
                    <s:decorate template="layout/display.xhtml">
                         <ui:define name="label">Customer</ui:define>
                         <h:selectOneMenu id="cust"
                              value="#{m150spaceAllocationList.m150spaceAllocation.m168custsup.id.customerCode}">
                              <f:selectItem itemLabel="Select Customer" itemValue="" />
                              <f:selectItems value="#{populateAction.custNameList}" />
                         </h:selectOneMenu>
                    </s:decorate>
                    <s:decorate template="layout/display.xhtml">
                         <ui:define name="label">Product</ui:define>
                         <h:selectOneMenu id="productLname"
                              value="#{m150spaceAllocationList.m150spaceAllocation.m150products.id.productId}">
                              <f:selectItem itemLabel="Select Product" itemValue="" />
                              <f:selectItems value="#{populateAction.productNameList}" />
                         </h:selectOneMenu>
                    </s:decorate>
                    <s:decorate template="layout/display.xhtml">
                         <ui:define name="label">BL No</ui:define>
                         <h:inputText id="blNo"
                              value="#{m150spaceAllocationList.m150spaceAllocation.blNo}" />
                    </s:decorate>
                    <s:decorate template="layout/display.xhtml">
                         <ui:define name="label">Vessel Name</ui:define>
                         <h:inputText id="vessal"
                              value="#{m150spaceAllocationList.m150spaceAllocation.vessal}" />
                    </s:decorate>
               </rich:simpleTogglePanel>And this is my m150spaceAllocation Entity class
@Entity
@Table(name = "M150SPACE_ALLOCATION")
public class M150spaceAllocation implements java.io.Serializable {
     private M150spaceAllocationId id;
     private M168custsup m168custsup;
     private M150units m150units;
     private M150products m150products;
     private Date transacDate;
     private double transacSeqNumber;
     private String blNo;
     private String vessal;
     private double quantityRequested;
     
...
@EmbeddedId
     @AttributeOverrides({
               @AttributeOverride(name = "unit", column = @Column(name = "UNIT", nullable = false, precision = 2, scale = 0)),
               @AttributeOverride(name = "spaceAllocationId", column = @Column(name = "SPACE_ALLOCATION_ID", nullable = false, length = 25))})
     @NotNull
     public M150spaceAllocationId getId() {
          return this.id;
     }
     public void setId(M150spaceAllocationId id) {
          this.id = id;
     }
     @ManyToOne(fetch = FetchType.LAZY)
     @JoinColumns({
               @JoinColumn(name = "UNIT", referencedColumnName = "UNIT", nullable = false, insertable = false, updatable = false),
               @JoinColumn(name = "CUST_SUP_FLAG", referencedColumnName = "CUST_SUP_FLAG", nullable = false, insertable = false, updatable = false),
               @JoinColumn(name = "CUSTOMER_CODE", referencedColumnName = "CUSTOMER_CODE", nullable = false, insertable = false, updatable = false)})
     @NotNull
     public M168custsup getM168custsup() {
          return this.m168custsup;
     }
     public void setM168custsup(M168custsup m168custsup) {
          this.m168custsup = m168custsup;
     }
     @ManyToOne(fetch = FetchType.LAZY)
     @JoinColumns({
               @JoinColumn(name = "UNIT", referencedColumnName = "UNIT", nullable = false, insertable = false, updatable = false),
               @JoinColumn(name = "UOM_ID", referencedColumnName = "UOM_ID", nullable = false, insertable = false, updatable = false),
               @JoinColumn(name = "QUANTITY_UOM", referencedColumnName = "QTY_UOM", nullable = false, insertable = false, updatable = false)})
     @NotNull
     public M150units getM150units() {
          return this.m150units;
     }
     public void setM150units(M150units m150units) {
          this.m150units = m150units;
     }
     @ManyToOne(fetch = FetchType.LAZY)
     @JoinColumns({
               @JoinColumn(name = "UNIT", referencedColumnName = "UNIT", nullable = false, insertable = false, updatable = false),
               @JoinColumn(name = "PRODUCT_ID", referencedColumnName = "PRODUCT_ID", nullable = false, insertable = false, updatable = false)})
     @NotNull
     public M150products getM150products() {
          return this.m150products;
     }
     public void setM150products(M150products m150products) {
          this.m150products = m150products;
     }
     
     ....And here are the parameters which on list page XML
<param name="vessal" value="#{m150spaceAllocationList.m150spaceAllocation.vessal}"/>
   <param name="productId" value="#{m150spaceAllocationList.m150spaceAllocation.m150products.id.productId}"/>
   <param name="customerCode" value="#{m150spaceAllocationList.m150spaceAllocation.m168custsup.id.customerCode}"/>
 <param name="spaceAllocationId" value="#{m150spaceAllocationList.m150spaceAllocation.id.spaceAllocationId}"/>
   <param name="blNo" value="#{m150spaceAllocationList.m150spaceAllocation.blNo}"/> pls give me a solution for this.
     
