Created
November 27, 2012 06:47
-
-
Save smithh032772/4152792 to your computer and use it in GitHub Desktop.
OrderCustomerLeader relationship to ORDERS table is always NULL
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* To prevent this NullPointerException, I had to check | |
if order.getOrderCustomerLeaders() != null and not empty; | |
I did not have to do this prior to using Batoo JPA | |
*/ | |
// customer | |
if (order.getCustomerId() != null) { | |
customerNbr = "Customer" + nbsp + "#" + nbsp + order.getCustomerId().getCustomerId(); | |
customer = order.getCustomerId().getCustomerName(); | |
// order customer leader | |
if (order.getOrderCustomerLeaders() != null && !order.getOrderCustomerLeaders().isEmpty()) { | |
List<OrderCustomerLeader> list = new ArrayList<>(order.getOrderCustomerLeaders()); | |
if (list != null && list.size() > 0) { | |
OrderCustomerLeader customerLeader = list.get(0); | |
String leader = customerLeader.getLeaderPointOfContact().getPointOfContactName(); | |
if (leader != null) customer += " (" + leader + ")"; | |
} | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Nov 27, 2012 1:09:47 AM org.apache.catalina.core.StandardWrapperValve invoke | |
SEVERE: Servlet.service() for servlet [Faces Servlet] in context with path [/mcmsweb] threw exception [javax.el.ELException: java.lang.NullPointerException] with root cause | |
java.lang.NullPointerException | |
at java.util.ArrayList.<init>(ArrayList.java:151) | |
at jsf.orders.OrderDisplayUtil.getOrderTitle(OrderDisplayUtil.java:809) | |
at jsf.orders.pf_OrdersController.getOrderNumberAndLabel(pf_OrdersController.java:4363) | |
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) | |
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) | |
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) | |
at java.lang.reflect.Method.invoke(Method.java:601) | |
at org.apache.webbeans.intercept.InterceptorHandler.invoke(InterceptorHandler.java:322) | |
at org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.invoke(NormalScopedBeanInterceptorHandler.java:117) | |
at org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.invoke(NormalScopedBeanInterceptorHandler.java:108) | |
at jsf.orders.pf_OrdersController_$$_javassist_13.getOrderNumberAndLabel(pf_OrdersController_$$_javassist_13.java) | |
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) | |
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) | |
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) | |
at java.lang.reflect.Method.invoke(Method.java:601) | |
at javax.el.BeanELResolver.invokeMethod(BeanELResolver.java:737) | |
at javax.el.BeanELResolver.invoke(BeanELResolver.java:467) | |
at javax.el.CompositeELResolver.invoke(CompositeELResolver.java:246) | |
at de.odysseus.el.tree.impl.ast.AstMethod.eval(AstMethod.java:91) | |
at de.odysseus.el.tree.impl.ast.AstMethod.eval(AstMethod.java:100) | |
at de.odysseus.el.tree.impl.ast.AstEval.eval(AstEval.java:51) | |
at de.odysseus.el.tree.impl.ast.AstNode.getValue(AstNode.java:30) | |
at de.odysseus.el.TreeValueExpression.getValue(TreeValueExpression.java:122) | |
at org.apache.webbeans.el.WrappedValueExpression.getValue(WrappedValueExpression.java:68) | |
at org.apache.myfaces.view.facelets.el.ContextAwareTagValueExpression.getValue(ContextAwareTagValueExpression.java:96) | |
at javax.faces.component._DeltaStateHelper.eval(_DeltaStateHelper.java:249) | |
at javax.faces.component.UIOutput.getValue(UIOutput.java:67) | |
at org.apache.myfaces.shared.renderkit.RendererUtils.getValue(RendererUtils.java:491) | |
at org.apache.myfaces.shared.renderkit.RendererUtils.getStringValue(RendererUtils.java:334) | |
at org.apache.myfaces.shared.renderkit.html.HtmlTextRendererBase.renderOutput(HtmlTextRendererBase.java:92) | |
at org.apache.myfaces.shared.renderkit.html.HtmlTextRendererBase.encodeEnd(HtmlTextRendererBase.java:79) | |
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:663) | |
at javax.faces.component.UIComponentBase.encodeAll(UIComponentBase.java:543) | |
at javax.faces.component.UIComponentBase.encodeAll(UIComponentBase.java:539) | |
at org.primefaces.component.datatable.DataTableRenderer.encodeRegularCell(DataTableRenderer.java:794) | |
at org.primefaces.component.datatable.DataTableRenderer.encodeRow(DataTableRenderer.java:746) | |
at org.primefaces.component.datatable.DataTableRenderer.encodeTbody(DataTableRenderer.java:649) | |
at org.primefaces.component.datatable.DataTableRenderer.encodeRegularTable(DataTableRenderer.java:229) | |
at org.primefaces.component.datatable.DataTableRenderer.encodeMarkup(DataTableRenderer.java:201) | |
at org.primefaces.component.datatable.DataTableRenderer.encodeEnd(DataTableRenderer.java:78) | |
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:663) | |
at javax.faces.component.UIData.encodeEnd(UIData.java:1699) | |
at javax.faces.component.UIComponentBase.encodeAll(UIComponentBase.java:543) | |
at org.apache.myfaces.shared.renderkit.RendererUtils.renderChildren(RendererUtils.java:693) | |
at org.apache.myfaces.shared.renderkit.html.HtmlGroupRendererBase.encodeEnd(HtmlGroupRendererBase.java:115) | |
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:663) | |
at org.primefaces.renderkit.CoreRenderer.renderChild(CoreRenderer.java:62) | |
at org.primefaces.renderkit.CoreRenderer.renderChildren(CoreRenderer.java:46) | |
at org.primefaces.extensions.component.layout.LayoutPaneRenderer.encodeBegin(LayoutPaneRenderer.java:141) | |
at javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:585) | |
at org.primefaces.renderkit.CoreRenderer.renderChild(CoreRenderer.java:55) | |
at org.primefaces.renderkit.CoreRenderer.renderChildren(CoreRenderer.java:46) | |
at org.primefaces.renderkit.CoreRenderer.renderChild(CoreRenderer.java:60) | |
at org.primefaces.renderkit.CoreRenderer.renderChildren(CoreRenderer.java:46) | |
at org.primefaces.component.outputpanel.OutputPanelRenderer.encodeEnd(OutputPanelRenderer.java:46) | |
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:663) | |
at org.primefaces.renderkit.CoreRenderer.renderChild(CoreRenderer.java:62) | |
at org.primefaces.renderkit.CoreRenderer.renderChildren(CoreRenderer.java:46) | |
at org.primefaces.extensions.component.layout.LayoutPaneRenderer.encodeBegin(LayoutPaneRenderer.java:141) | |
at javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:585) | |
at javax.faces.component.UIComponentBase.encodeAll(UIComponentBase.java:515) | |
at javax.faces.component.UIComponentBase.encodeAll(UIComponentBase.java:539) | |
at javax.faces.component.UIComponentBase.encodeAll(UIComponentBase.java:539) | |
at javax.faces.component.UIComponentBase.encodeAll(UIComponentBase.java:539) | |
at org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguage.renderView(FaceletViewDeclarationLanguage.java:1981) | |
at org.apache.myfaces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:285) | |
at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:59) | |
at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:59) | |
at org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:116) | |
at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:241) | |
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:199) | |
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) | |
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) | |
at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:79) | |
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) | |
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) | |
at org.omnifaces.filter.GzipResponseFilter.doFilter(GzipResponseFilter.java:148) | |
at org.omnifaces.filter.HttpFilter.doFilter(HttpFilter.java:75) | |
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) | |
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) | |
at pf.LoginFilter.doFilter(LoginFilter.java:194) | |
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) | |
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) | |
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) | |
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) | |
at org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:45) | |
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) | |
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) | |
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) | |
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:931) | |
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) | |
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) | |
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004) | |
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) | |
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312) | |
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) | |
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) | |
at java.lang.Thread.run(Thread.java:722) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
CREATE TABLE order_customer_leader ( | |
order_id INTEGER NOT NULL, | |
customer_id INTEGER NOT NULL, | |
leader_point_of_contact_id INTEGER NOT NULL, | |
CONSTRAINT order_customer_leader_pk PRIMARY KEY ( order_id, customer_id, leader_point_of_contact_id ) | |
); | |
ALTER TABLE order_customer_leader ADD CONSTRAINT order_customer_leader_fk_orders FOREIGN KEY ( order_id ) REFERENCES orders ( order_id ); | |
ALTER TABLE order_customer_leader ADD CONSTRAINT order_customer_leader_fk_customer FOREIGN KEY ( customer_id ) REFERENCES customer ( customer_id ); | |
ALTER TABLE order_customer_leader ADD CONSTRAINT order_customer_leader_fk_point_of_contact FOREIGN KEY ( leader_point_of_contact_id ) REFERENCES point_of_contact ( point_of_contact_id ); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
* To change this template, choose Tools | Templates | |
* and open the template in the editor. | |
*/ | |
package jpa.entities; | |
import java.io.Serializable; | |
import javax.persistence.EmbeddedId; | |
import javax.persistence.Entity; | |
import javax.persistence.JoinColumn; | |
import javax.persistence.ManyToOne; | |
import javax.persistence.NamedQueries; | |
import javax.persistence.NamedQuery; | |
import javax.persistence.Table; | |
import javax.xml.bind.annotation.XmlRootElement; | |
/** | |
* | |
* @author Administrator | |
*/ | |
@Entity | |
@Table(name = "ORDER_CUSTOMER_LEADER") | |
@XmlRootElement | |
@NamedQueries({ | |
@NamedQuery(name = "OrderCustomerLeader.findAll", query = "SELECT o FROM OrderCustomerLeader o"), | |
@NamedQuery(name = "OrderCustomerLeader.findByOrderId", query = "SELECT o FROM OrderCustomerLeader o WHERE o.orderCustomerLeaderPK.orderId = :orderId"), | |
@NamedQuery(name = "OrderCustomerLeader.findByCustomerId", query = "SELECT o FROM OrderCustomerLeader o WHERE o.orderCustomerLeaderPK.customerId = :customerId"), | |
@NamedQuery(name = "OrderCustomerLeader.findByLeaderPointOfContactId", query = "SELECT o FROM OrderCustomerLeader o WHERE o.orderCustomerLeaderPK.leaderPointOfContactId = :leaderPointOfContactId"), | |
// 2011-08-02 added removeAll | |
@NamedQuery(name = "OrderCustomerLeader.removeAll", query = "DELETE FROM OrderCustomerLeader o")}) | |
public class OrderCustomerLeader implements Serializable { | |
private static final long serialVersionUID = 1L; | |
@EmbeddedId | |
protected OrderCustomerLeaderPK orderCustomerLeaderPK; | |
@JoinColumn(name = "LEADER_POINT_OF_CONTACT_ID", referencedColumnName = "POINT_OF_CONTACT_ID", insertable = false, updatable = false) | |
@ManyToOne(optional = false) | |
private PointOfContact leaderPointOfContact; | |
@JoinColumn(name = "ORDER_ID", referencedColumnName = "ORDER_ID", insertable = false, updatable = false) | |
@ManyToOne(optional = false) | |
private Orders orders; | |
@JoinColumn(name = "CUSTOMER_ID", referencedColumnName = "CUSTOMER_ID", insertable = false, updatable = false) | |
@ManyToOne(optional = false) | |
private Customer customer; | |
public OrderCustomerLeader() { | |
} | |
public OrderCustomerLeader(OrderCustomerLeaderPK orderCustomerLeaderPK) { | |
this.orderCustomerLeaderPK = orderCustomerLeaderPK; | |
} | |
public OrderCustomerLeader(int orderId, int customerId, int pointOfContactId) { | |
this.orderCustomerLeaderPK = new OrderCustomerLeaderPK(orderId, customerId, pointOfContactId); | |
} | |
public OrderCustomerLeaderPK getOrderCustomerLeaderPK() { | |
return orderCustomerLeaderPK; | |
} | |
public void setOrderCustomerLeaderPK(OrderCustomerLeaderPK orderCustomerLeaderPK) { | |
this.orderCustomerLeaderPK = orderCustomerLeaderPK; | |
} | |
public PointOfContact getLeaderPointOfContact() { | |
return leaderPointOfContact; | |
} | |
public void setLeaderPointOfContact(PointOfContact leaderPointOfContact) { | |
this.leaderPointOfContact = leaderPointOfContact; | |
} | |
public Orders getOrders() { | |
return orders; | |
} | |
public void setOrders(Orders orders) { | |
this.orders = orders; | |
} | |
public Customer getCustomer() { | |
return customer; | |
} | |
public void setCustomer(Customer customer) { | |
this.customer = customer; | |
} | |
@Override | |
public int hashCode() { | |
int hash = 0; | |
hash += (orderCustomerLeaderPK != null ? orderCustomerLeaderPK.hashCode() : 0); | |
return hash; | |
} | |
@Override | |
public boolean equals(Object object) { | |
// TODO: Warning - this method won't work in the case the id fields are not set | |
if (!(object instanceof OrderCustomerLeader)) { | |
return false; | |
} | |
OrderCustomerLeader other = (OrderCustomerLeader) object; | |
if ((this.orderCustomerLeaderPK == null && other.orderCustomerLeaderPK != null) || (this.orderCustomerLeaderPK != null && !this.orderCustomerLeaderPK.equals(other.orderCustomerLeaderPK))) { | |
return false; | |
} | |
return true; | |
} | |
@Override | |
public String toString() { | |
return "jpa.entities.OrderCustomerLeader[ orderCustomerLeaderPK=" + orderCustomerLeaderPK + " ]"; | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
* To change this template, choose Tools | Templates | |
* and open the template in the editor. | |
*/ | |
package jpa.entities; | |
import java.io.Serializable; | |
import javax.persistence.Basic; | |
import javax.persistence.Column; | |
import javax.persistence.Embeddable; | |
import javax.validation.constraints.NotNull; | |
/** | |
* | |
* @author Administrator | |
*/ | |
@Embeddable | |
public class OrderCustomerLeaderPK implements Serializable { | |
@Basic(optional = false) | |
@NotNull | |
@Column(name = "ORDER_ID") | |
private int orderId; | |
@Basic(optional = false) | |
@NotNull | |
@Column(name = "CUSTOMER_ID") | |
private int customerId; | |
@Basic(optional = false) | |
@NotNull | |
@Column(name = "LEADER_POINT_OF_CONTACT_ID") | |
private int leaderPointOfContactId; | |
public OrderCustomerLeaderPK() { | |
} | |
public OrderCustomerLeaderPK(int orderId, int customerId, int leaderPointOfContactId) { | |
this.orderId = orderId; | |
this.customerId = customerId; | |
this.leaderPointOfContactId = leaderPointOfContactId; | |
} | |
public int getOrderId() { | |
return orderId; | |
} | |
public void setOrderId(int orderId) { | |
this.orderId = orderId; | |
} | |
public int getCustomerId() { | |
return customerId; | |
} | |
public void setCustomerId(int customerId) { | |
this.customerId = customerId; | |
} | |
public int getLeaderPointOfContactId() { | |
return leaderPointOfContactId; | |
} | |
public void setLeaderPointOfContactId(int leaderPointOfContactId) { | |
this.leaderPointOfContactId = leaderPointOfContactId; | |
} | |
@Override | |
public int hashCode() { | |
int hash = 0; | |
hash += (int) orderId; | |
hash += (int) customerId; | |
hash += (int) leaderPointOfContactId; | |
return hash; | |
} | |
@Override | |
public boolean equals(Object object) { | |
// TODO: Warning - this method won't work in the case the id fields are not set | |
if (!(object instanceof OrderCustomerLeaderPK)) { | |
return false; | |
} | |
OrderCustomerLeaderPK other = (OrderCustomerLeaderPK) object; | |
if (this.orderId != other.orderId) { | |
return false; | |
} | |
if (this.customerId != other.customerId) { | |
return false; | |
} | |
if (this.leaderPointOfContactId != other.leaderPointOfContactId) { | |
return false; | |
} | |
return true; | |
} | |
@Override | |
public String toString() { | |
return "jpa.entities.OrderCustomerLeaderPK[ orderId=" + orderId + ", customerId=" + customerId + ", leaderPointOfContactId=" + leaderPointOfContactId + " ]"; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment