Please help me to find out the issue.i am a beginner in spring hibernate and using Spring 3 and hibernate 4 in my project, i want to use namedQuery in my application. I have created a named query to fetch data from multiple table using join, but i am getting some issue please correct me if i am doing something wrong here. Vode is below The Entity class:-

@Embeddable
   @NamedQuery(
    name = "findAllProduct",

    query = "SELECT PVPOL.pincode,PO.description" 
    +" FROM product_vendor_payment_option_location PVPOL" 
    +" INNER JOIN PVPOL.Payement_Id PID" 
    +" INNER JOIN PVPOL.pincode PC"
    +" INNER JOIN PVPOL.paymentOptions PO"
    +" where PVPOL.id = :Payement_Id"
    )



public class PRODUCT_VENDOR_PAYMENT_OPTION_LOCATION extends Entity {


    @Column(name="id")
    @OneToMany(cascade=CascadeType.ALL,fetch=FetchType.EAGER,mappedBy="id")
    private Collection<Product_Catalog_Vendor> Payement_Id;


    @Column(name="pincode_id")
    @OneToMany(cascade=CascadeType.ALL,fetch=FetchType.EAGER,mappedBy="PINCODE_ID")
    private Collection<Pincodes> pincode;

    @Column(name = "payment_options")
    @OneToMany(cascade=CascadeType.ALL,fetch=FetchType.EAGER,mappedBy="payment_options")
    private Set<Payment_Options> paymentOptions;

//getters and setters here  
}

These are my tables from where i want to fetch the data:-

    CREATE TABLE PRODUCT_VENDOR_PAYMENT_OPTION_LOCATION (
  ID INTEGER UNSIGNED  NOT NULL   AUTO_INCREMENT,
  Payment_Id INTEGER UNSIGNED  NOT NULL  ,   
  PINCODE_ID INTEGER UNSIGNED  NOT NULL  ,
  PAYMENT_OPTIONS INTEGER UNSIGNED NOT NULL ,   
PRIMARY KEY(ID,Payment_Id, PINCODE_ID)  , 
INDEX PRODUCT_VENDOR_PAYMENT_OPTION_LOCATION_FKIndex1(PAYMENT_OPTIONS),
INDEX PRODUCT_VENDOR_PAYMENT_OPTION_LOCATION_FKIndex2(Payment_Id)  ,
INDEX PRODUCT_VENDOR_PAYMENT_OPTION_LOCATION_FKIndex3(PINCODE_ID),
  FOREIGN KEY(PAYMENT_OPTIONS)   
  REFERENCES PAYEMENT_OPTIONS(PAYMENT_OPTIONS)
      ON DELETE NO ACTION
      ON UPDATE NO ACTION,
  FOREIGN KEY(Payment_Id)
    REFERENCES PRODUCT_CATALOG_VENDOR(Id)
      ON DELETE NO ACTION
      ON UPDATE NO ACTION,
  FOREIGN KEY(PINCODE_ID)
    REFERENCES PINCODES(PINCODE_ID)
      ON DELETE NO ACTION
      ON UPDATE NO ACTION);


CREATE TABLE PAYEMENT_OPTIONS ( PAYMENT_OPTIONS INTEGER UNSIGNED  NOT NULL   AUTO_INCREMENT, Description VARCHAR(500)  NULL    ,
PRIMARY KEY(PAYMENT_OPTIONS));


CREATE TABLE PRODUCT_CATALOG_VENDOR (
  Id INTEGER UNSIGNED  NOT NULL  ,  Prefilled_Response_Id INTEGER UNSIGNED  NULL  ,
  Product_Catalog_Id INTEGER UNSIGNED  NOT NULL  ,  User_Id INTEGER UNSIGNED  NOT NULL  ,
  Aud_Create_Time TIMESTAMP  NOT NULL  ,  Aud_Update_Time TIMESTAMP  NOT NULL    ,
PRIMARY KEY(Id)  ,INDEX PRODUCT_CATALOG_VENDOR_FKIndex1(Product_Catalog_Id)  ,
INDEX PRODUCT_CATALOG_VENDOR_FKIndex2(User_Id)  ,INDEX PRODUCT_CATALOG_VENDOR_FKIndex3(Prefilled_Response_Id),  FOREIGN KEY(Product_Catalog_Id)
    REFERENCES PRODUCT_CATALOG(Product_Catalog_Id)
      ON DELETE CASCADE
      ON UPDATE NO ACTION,  FOREIGN KEY(User_Id)    REFERENCES VENDOR(User_Id)
      ON DELETE CASCADE      ON UPDATE NO ACTION,  FOREIGN KEY(Prefilled_Response_Id)
    REFERENCES PREFILLED_RESPONSE(Prefilled_Response_Id)      ON DELETE NO ACTION
      ON UPDATE NO ACTION);


CREATE TABLE PINCODES (
PINCODE_ID INTEGER UNSIGNED  NOT NULL AUTO_INCREMENT,
PINCODE INTEGER UNSIGNED NOT NULL,    Description INTEGER UNSIGNED  NULL,
PRIMARY KEY(PINCODE_ID));

In DAO class i am calling namedQuery through:-

Session session = sessionFactory.getCurrentSession();
Query query=(Query) session.getNamedQuery("findAllProduct");

when i am running after deployement , i am getting below error in logs:-

10:27:36,139 INFO  [org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping] (MSC service thread 1-2) Root mapping to handler 'productController'
10:27:36,626 INFO  [org.springframework.web.servlet.DispatcherServlet] (MSC service thread 1-2) FrameworkServlet 'product': initialization completed in 3979 ms
10:27:36,633 INFO  [org.jboss.web] (MSC service thread 1-2) registering web context: /usermanagement
10:27:36,636 INFO  [org.jboss.as] (MSC service thread 1-4) JBoss AS 7.0.2.Final "Arc" started in 8346ms - Started 182 of 239 services (57 services are passive or on-demand)
10:27:36,670 INFO  [org.jboss.as.server.controller] (DeploymentScanner-threads - 2) Deployed "usermanagement.war"
10:27:52,987 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/usermanagement].[product]] (http--127.0.0.1-8080-1) Servlet.service() for servlet product threw exception: org.hibernate.MappingException: Named query not known: findAllProduct
    at org.hibernate.internal.AbstractSessionImpl.getNamedQuery(AbstractSessionImpl.java:154) [hibernate-core-4.1.10.Final.jar:]
    at org.hibernate.internal.SessionImpl.getNamedQuery(SessionImpl.java:1343) [hibernate-core-4.1.10.Final.jar:]
    at com.ecom.data.access.product.ProductDaoImpl.getAllProduct(ProductDaoImpl.java:36) [classes:]
    at com.ecom.data.access.transaction.ProductServiceImpl.getAllProduct(ProductServiceImpl.java:30) [classes:]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [:1.6.0_43]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) [:1.6.0_43]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [:1.6.0_43]
    at java.lang.reflect.Method.invoke(Method.java:597) [:1.6.0_43]
    at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317) [spring-aop-3.2.2.RELEASE.jar:]
    at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) [spring-aop-3.2.2.RELEASE.jar:]
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) [spring-aop-3.2.2.RELEASE.jar:]
    at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:96) [spring-tx-3.2.2.RELEASE.jar:]
    at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:260) [spring-tx-3.2.2.RELEASE.jar:]
    at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:94) [spring-tx-3.2.2.RELEASE.jar:]
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) [spring-aop-3.2.2.RELEASE.jar:]
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) [spring-aop-3.2.2.RELEASE.jar:]
    at com.sun.proxy.$Proxy35.getAllProduct(Unknown Source)
    at com.ecom.data.access.controller.ProductController.listProducts(ProductController.java:24) [classes:]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [:1.6.0_43]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) [:1.6.0_43]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [:1.6.0_43]
    at java.lang.reflect.Method.invoke(Method.java:597) [:1.6.0_43]
    at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:176) [spring-web-3.2.2.RELEASE.jar:]
    at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:440) [spring-webmvc-3.2.2.RELEASE.jar:]
    at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:428) [spring-webmvc-3.2.2.RELEASE.jar:]
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:925) [spring-webmvc-3.2.2.RELEASE.jar:]
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856) [spring-webmvc-3.2.2.RELEASE.jar:]
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:936) [spring-webmvc-3.2.2.RELEASE.jar:]
    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:827) [spring-webmvc-3.2.2.RELEASE.jar:]
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:734) [jboss-servlet-api_3.0_spec-1.0.0.Final.jar:1.0.0.Final]
    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812) [spring-webmvc-3.2.2.RELEASE.jar:]
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) [jboss-servlet-api_3.0_spec-1.0.0.Final.jar:1.0.0.Final]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329) [jbossweb-7.0.1.Final.jar:7.0.2.Final]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) [jbossweb-7.0.1.Final.jar:7.0.2.Final]
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275) [jbossweb-7.0.1.Final.jar:7.0.2.Final]
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161) [jbossweb-7.0.1.Final.jar:7.0.2.Final]
    at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:139) [jboss-as-web-7.0.2.Final.jar:7.0.2.Final]
    at org.jboss.as.web.NamingValve.invoke(NamingValve.java:57) [jboss-as-web-7.0.2.Final.jar:7.0.2.Final]
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:154) [jbossweb-7.0.1.Final.jar:7.0.2.Final]
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) [jbossweb-7.0.1.Final.jar:7.0.2.Final]
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) [jbossweb-7.0.1.Final.jar:7.0.2.Final]
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:362) [jbossweb-7.0.1.Final.jar:7.0.2.Final]
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877) [jbossweb-7.0.1.Final.jar:7.0.2.Final]
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:667) [jbossweb-7.0.1.Final.jar:7.0.2.Final]
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:952) [jbossweb-7.0.1.Final.jar:7.0.2.Final]
    at java.lang.Thread.run(Thread.java:662) [:1.6.0_43]

Looking forward for some suggestions...

有帮助吗?

解决方案

I suppose you should put your @NamedQuery on Entity (where you have @Entity but not @Embeddable).

Read here: http://docs.oracle.com/javaee/6/api/javax/persistence/NamedQuery.html

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top