2017-08-15 1 views
0

Ich habe ein TextHistory Entitätsobjekt und dann habe ich diese JPA-Abfrage.JPA Abfrage Syntax Problem oder was? JPA SELECT Neues Syntaxproblem?

SELECT NEW TextHistory(i.id, i.fileName, i.importDate) FROM TextHistory i")

In der Objektentität I die entsprechende Konstruktor zur Verfügung gestellt haben.

Ich versuche, meine app unter Payara 4.1, aber ich bekomme diese Ausnahme bei deploy Zeit zu implementieren:

Error occurred during deployment: Exception while deploying the app  
[app-name] : Exception [EclipseLink-28019] 
(Eclipse Persistence Services - 2.6.2.qualifier): 
org.eclipse.persistence.exceptions.EntityManagerSetupException 
Exception Description: 
Deployment of PersistenceUnit [unit-name] failed. 
Close all factories for this PersistenceUnit. Internal Exception: 
Exception [EclipseLink-0] (Eclipse Persistence Services - 2.6.2.qualifier): 
org.eclipse.persistence.exceptions.JPQLException 
Exception Description: Internal problem encountered while compiling 
[SELECT NEW TextHistory(i.id, i.fileName, i.importDate) FROM TextHistory i]. 
Internal Exception: java.lang.NullPointerException. 
Please see server.log for more details. 

Ich glaube, meine JPA-Abfragesyntax korrekt ist. Ich habe seit mehreren Stunden damit zu kämpfen.

Was ist das Problem? Irgendwelche Ideen?

In der server.log sehe ich diese Ausnahme.

 [2017-08-15T21:32:24.546+0200] [Payara 4.1] [INFO] [] [org.eclipse.persistence.session./file:/D:/Work/TSSB_DEV_ENV_MASTER/domains/tssb_ms_gf4_domain_srm_tsbg/applications/tsbgam-application-2017-T3-SNAPSHOT/tsbgam-business_jar/_tsms_tsbg.connection] [tid: _ThreadID=154 _ThreadName=admin-listener(7)] [timeMillis: 1502825544546] [levelValue: 800] [[ 
      /file:/D:/Work/TSSB_DEV_ENV_MASTER/domains/tssb_ms_gf4_domain_srm_tsbg/applications/tsbgam-application-2017-T3-SNAPSHOT/tsbgam-business_jar/_tsms_tsbg logout successful]] 

     [2017-08-15T21:32:24.546+0200] [Payara 4.1] [SEVERE] [] [org.eclipse.persistence.session./file:/D:/Work/TSSB_DEV_ENV_MASTER/domains/tssb_ms_gf4_domain_srm_tsbg/applications/tsbgam-application-2017-T3-SNAPSHOT/tsbgam-business_jar/_tsms_tsbg.ejb] [tid: _ThreadID=154 _ThreadName=admin-listener(7)] [timeMillis: 1502825544546] [levelValue: 1000] [[ 

     Local Exception Stack: 
     Exception [EclipseLink-0] (Eclipse Persistence Services - 2.6.2.qualifier): org.eclipse.persistence.exceptions.JPQLException 
     Exception Description: Internal problem encountered while compiling [SELECT NEW TextHistory(i.id, i.fileName, i.importDate) FROM TextHistory i]. 
     Internal Exception: java.lang.NullPointerException 
      at org.eclipse.persistence.internal.jpa.jpql.HermesParser.buildUnexpectedException(HermesParser.java:207) 
      at org.eclipse.persistence.internal.jpa.jpql.HermesParser.populateQueryImp(HermesParser.java:296) 
      at org.eclipse.persistence.internal.jpa.jpql.HermesParser.buildQuery(HermesParser.java:163) 
      at org.eclipse.persistence.internal.jpa.EJBQueryImpl.buildEJBQLDatabaseQuery(EJBQueryImpl.java:142) 
      at org.eclipse.persistence.internal.jpa.JPAQuery.processJPQLQuery(JPAQuery.java:223) 
      at org.eclipse.persistence.internal.jpa.JPAQuery.prepare(JPAQuery.java:184) 
      at org.eclipse.persistence.queries.DatabaseQuery.prepareInternal(DatabaseQuery.java:624) 
      at org.eclipse.persistence.internal.sessions.AbstractSession.processJPAQuery(AbstractSession.java:4366) 
      at org.eclipse.persistence.internal.sessions.AbstractSession.processJPAQueries(AbstractSession.java:4326) 
      at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.initializeDescriptors(DatabaseSessionImpl.java:598) 
      at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.postConnectDatasource(DatabaseSessionImpl.java:818) 
      at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.loginAndDetectDatasource(DatabaseSessionImpl.java:762) 
      at org.eclipse.persistence.internal.jpa.EntityManagerFactoryProvider.login(EntityManagerFactoryProvider.java:265) 
      at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:731) 
      at org.eclipse.persistence.internal.jpa.EntityManagerFactoryDelegate.getAbstractSession(EntityManagerFactoryDelegate.java:205) 
      at org.eclipse.persistence.internal.jpa.EntityManagerFactoryDelegate.createEntityManagerImpl(EntityManagerFactoryDelegate.java:305) 
      at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:337) 
      at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:303) 
      at org.glassfish.persistence.jpa.JPADeployer$2.visitPUD(JPADeployer.java:451) 
      at org.glassfish.persistence.jpa.JPADeployer$PersistenceUnitDescriptorIterator.iteratePUDs(JPADeployer.java:510) 
      at org.glassfish.persistence.jpa.JPADeployer.iterateInitializedPUsAtApplicationPrepare(JPADeployer.java:492) 
      at org.glassfish.persistence.jpa.JPADeployer.event(JPADeployer.java:395) 
      at org.glassfish.kernel.event.EventsImpl.send(EventsImpl.java:131) 
      at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:487) 
      at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:219) 
      at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:487) 
      at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:539) 
      at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:535) 
      at java.security.AccessController.doPrivileged(Native Method) 
      at javax.security.auth.Subject.doAs(Subject.java:360) 
      at com.sun.enterprise.v3.admin.CommandRunnerImpl$2.execute(CommandRunnerImpl.java:534) 
      at com.sun.enterprise.v3.admin.CommandRunnerImpl$3.run(CommandRunnerImpl.java:565) 
      at com.sun.enterprise.v3.admin.CommandRunnerImpl$3.run(CommandRunnerImpl.java:557) 
      at java.security.AccessController.doPrivileged(Native Method) 
      at javax.security.auth.Subject.doAs(Subject.java:360) 
      at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:556) 
      at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1464) 
      at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1300(CommandRunnerImpl.java:109) 
      at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1846) 
      at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1722) 
      at org.glassfish.admin.rest.utils.ResourceUtil.runCommand(ResourceUtil.java:253) 
      at org.glassfish.admin.rest.utils.ResourceUtil.runCommand(ResourceUtil.java:231) 
      at org.glassfish.admin.rest.utils.ResourceUtil.runCommand(ResourceUtil.java:275) 
      at org.glassfish.admin.rest.resources.TemplateListOfResource.createResource(TemplateListOfResource.java:136) 
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
      at java.lang.reflect.Method.invoke(Method.java:498) 
      at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory$1.invoke(ResourceMethodInvocationHandlerFactory.java:81) 
      at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:144) 
      at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:161) 
      at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:160) 
      at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:99) 
      at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:389) 
      at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:347) 
      at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:102) 
      at org.glassfish.jersey.server.ServerRuntime$2.run(ServerRuntime.java:326) 
      at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271) 
      at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267) 
      at org.glassfish.jersey.internal.Errors.process(Errors.java:315) 
      at org.glassfish.jersey.internal.Errors.process(Errors.java:297) 
      at org.glassfish.jersey.internal.Errors.process(Errors.java:267) 
      at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:317) 
      at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:305) 
      at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1154) 
      at org.glassfish.jersey.grizzly2.httpserver.GrizzlyHttpContainer.service(GrizzlyHttpContainer.java:384) 
      at org.glassfish.admin.rest.adapter.RestAdapter$2.service(RestAdapter.java:316) 
      at org.glassfish.admin.rest.adapter.RestAdapter.service(RestAdapter.java:179) 
      at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:459) 
      at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:167) 
      at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:206) 
      at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:180) 
      at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:235) 
      at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119) 
      at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:283) 
      at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:200) 
      at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:132) 
      at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:111) 
      at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77) 
      at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:536) 
      at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112) 
      at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117) 
      at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:56) 
      at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:137) 
      at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:591) 
      at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:571) 
      at java.lang.Thread.run(Thread.java:745) 
     Caused by: java.lang.NullPointerException 
      at org.eclipse.persistence.queries.ReportQuery.beginAddingConstructorArguments(ReportQuery.java:558) 
      at org.eclipse.persistence.internal.jpa.jpql.ReportItemBuilder.visit(ReportItemBuilder.java:263) 
      at org.eclipse.persistence.jpa.jpql.parser.ConstructorExpression.accept(ConstructorExpression.java:84) 
      at org.eclipse.persistence.internal.jpa.jpql.ReportItemBuilder.visitAbstractSelectClause(ReportItemBuilder.java:695) 
      at org.eclipse.persistence.internal.jpa.jpql.ReportItemBuilder.visit(ReportItemBuilder.java:545) 
      at org.eclipse.persistence.jpa.jpql.parser.SelectClause.accept(SelectClause.java:42) 
      at org.eclipse.persistence.internal.jpa.jpql.ReportQueryVisitor.visitAbstractSelectClause(ReportQueryVisitor.java:82) 
      at org.eclipse.persistence.internal.jpa.jpql.AbstractObjectLevelReadQueryVisitor.visit(AbstractObjectLevelReadQueryVisitor.java:173) 
      at org.eclipse.persistence.jpa.jpql.parser.SelectClause.accept(SelectClause.java:42) 
      at org.eclipse.persistence.internal.jpa.jpql.AbstractObjectLevelReadQueryVisitor.visitAbstractSelectStatement(AbstractObjectLevelReadQueryVisitor.java:327) 
      at org.eclipse.persistence.internal.jpa.jpql.ReportQueryVisitor.visitAbstractSelectStatement(ReportQueryVisitor.java:92) 
      at org.eclipse.persistence.internal.jpa.jpql.AbstractObjectLevelReadQueryVisitor.visit(AbstractObjectLevelReadQueryVisitor.java:183) 
      at org.eclipse.persistence.jpa.jpql.parser.SelectStatement.accept(SelectStatement.java:101) 
      at org.eclipse.persistence.internal.jpa.jpql.HermesParser$DatabaseQueryVisitor.visit(HermesParser.java:438) 
      at org.eclipse.persistence.jpa.jpql.parser.SelectStatement.accept(SelectStatement.java:101) 
      at org.eclipse.persistence.internal.jpa.jpql.HermesParser$DatabaseQueryVisitor.visit(HermesParser.java:418) 
      at org.eclipse.persistence.jpa.jpql.parser.JPQLExpression.accept(JPQLExpression.java:135) 
      at org.eclipse.persistence.internal.jpa.jpql.HermesParser.populateQueryImp(HermesParser.java:282) 
      ... 85 more 
     ]] 

     [2017-08-15T21:32:24.548+0200] [Payara 4.1] [SEVERE] [] [javax.enterprise.system.core] [tid: _ThreadID=154 _ThreadName=admin-listener(7)] [timeMillis: 1502825544548] [levelValue: 1000] [[ 
      Exception while deploying the app [tsbgam-application-2017-T3-SNAPSHOT]]] 

     [2017-08-15T21:32:24.548+0200] [Payara 4.1] [SEVERE] [NCLS-CORE-00026] [javax.enterprise.system.core] [tid: _ThreadID=154 _ThreadName=admin-listener(7)] [timeMillis: 1502825544548] [levelValue: 1000] [[ 
      Exception during lifecycle processing 
     org.glassfish.deployment.common.DeploymentException: Exception [EclipseLink-28019] (Eclipse Persistence Services - 2.6.2.qualifier): org.eclipse.persistence.exceptions.EntityManagerSetupException 
     Exception Description: Deployment of PersistenceUnit [tsms_tsbg] failed. Close all factories for this PersistenceUnit. 
     Internal Exception: Exception [EclipseLink-0] (Eclipse Persistence Services - 2.6.2.qualifier): org.eclipse.persistence.exceptions.JPQLException 
     Exception Description: Internal problem encountered while compiling [SELECT NEW TextHistory(i.id, i.fileName, i.importDate) FROM TextHistory i]. 
     Internal Exception: java.lang.NullPointerException 
      at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.createDeployFailedPersistenceException(EntityManagerSetupImpl.java:869) 
      at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:809) 
      at org.eclipse.persistence.internal.jpa.EntityManagerFactoryDelegate.getAbstractSession(EntityManagerFactoryDelegate.java:205) 
      at org.eclipse.persistence.internal.jpa.EntityManagerFactoryDelegate.createEntityManagerImpl(EntityManagerFactoryDelegate.java:305) 
      at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:337) 
      at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:303) 
      at org.glassfish.persistence.jpa.JPADeployer$2.visitPUD(JPADeployer.java:451) 
      at org.glassfish.persistence.jpa.JPADeployer$PersistenceUnitDescriptorIterator.iteratePUDs(JPADeployer.java:510) 
      at org.glassfish.persistence.jpa.JPADeployer.iterateInitializedPUsAtApplicationPrepare(JPADeployer.java:492) 
      at org.glassfish.persistence.jpa.JPADeployer.event(JPADeployer.java:395) 
      at org.glassfish.kernel.event.EventsImpl.send(EventsImpl.java:131) 
      at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:487) 
      at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:219) 
      at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:487) 
      at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:539) 
      at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:535) 
      at java.security.AccessController.doPrivileged(Native Method) 
      at javax.security.auth.Subject.doAs(Subject.java:360) 
      at com.sun.enterprise.v3.admin.CommandRunnerImpl$2.execute(CommandRunnerImpl.java:534) 
      at com.sun.enterprise.v3.admin.CommandRunnerImpl$3.run(CommandRunnerImpl.java:565) 
      at com.sun.enterprise.v3.admin.CommandRunnerImpl$3.run(CommandRunnerImpl.java:557) 
      at java.security.AccessController.doPrivileged(Native Method) 
      at javax.security.auth.Subject.doAs(Subject.java:360) 
      at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:556) 
      at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1464) 
      at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1300(CommandRunnerImpl.java:109) 
      at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1846) 
      at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1722) 
      at org.glassfish.admin.rest.utils.ResourceUtil.runCommand(ResourceUtil.java:253) 
      at org.glassfish.admin.rest.utils.ResourceUtil.runCommand(ResourceUtil.java:231) 
      at org.glassfish.admin.rest.utils.ResourceUtil.runCommand(ResourceUtil.java:275) 
      at org.glassfish.admin.rest.resources.TemplateListOfResource.createResource(TemplateListOfResource.java:136) 
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
      at java.lang.reflect.Method.invoke(Method.java:498) 
      at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory$1.invoke(ResourceMethodInvocationHandlerFactory.java:81) 
      at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:144) 
      at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:161) 
      at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:160) 
      at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:99) 
      at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:389) 
      at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:347) 
      at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:102) 
      at org.glassfish.jersey.server.ServerRuntime$2.run(ServerRuntime.java:326) 
      at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271) 
      at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267) 
      at org.glassfish.jersey.internal.Errors.process(Errors.java:315) 
      at org.glassfish.jersey.internal.Errors.process(Errors.java:297) 
      at org.glassfish.jersey.internal.Errors.process(Errors.java:267) 
      at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:317) 
      at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:305) 
      at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1154) 
      at org.glassfish.jersey.grizzly2.httpserver.GrizzlyHttpContainer.service(GrizzlyHttpContainer.java:384) 
      at org.glassfish.admin.rest.adapter.RestAdapter$2.service(RestAdapter.java:316) 
      at org.glassfish.admin.rest.adapter.RestAdapter.service(RestAdapter.java:179) 
      at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:459) 
      at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:167) 
      at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:206) 
      at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:180) 
      at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:235) 
      at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119) 
      at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:283) 
      at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:200) 
      at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:132) 
      at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:111) 
      at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77) 
      at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:536) 
      at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112) 
      at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117) 
      at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:56) 
      at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:137) 
      at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:591) 
      at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:571) 
      at java.lang.Thread.run(Thread.java:745) 
     ]] 

     [2017-08-15T21:32:24.562+0200] [Payara 4.1] [SEVERE] [] [javax.enterprise.system.core] [tid: _ThreadID=154 _ThreadName=admin-listener(7)] [timeMillis: 1502825544562] [levelValue: 1000] [[ 
      Exception while deploying the app [tsbgam-application-2017-T3-SNAPSHOT] : Exception [EclipseLink-28019] (Eclipse Persistence Services - 2.6.2.qualifier): org.eclipse.persistence.exceptions.EntityManagerSetupException 
     Exception Description: Deployment of PersistenceUnit [tsms_tsbg] failed. Close all factories for this PersistenceUnit. 
     Internal Exception: Exception [EclipseLink-0] (Eclipse Persistence Services - 2.6.2.qualifier): org.eclipse.persistence.exceptions.JPQLException 
     Exception Description: Internal problem encountered while compiling [SELECT NEW TextHistory(i.id, i.fileName, i.importDate) FROM TextHistory i]. 
     Internal Exception: java.lang.NullPointerException]] 

     [2017-08-15T21:32:24.663+0200] [Payara 4.1] [INFO] [] [org.glassfish.admingui] [tid: _ThreadID=47 _ThreadName=admin-listener(5)] [timeMillis: 1502825544663] [levelValue: 800] [[ 
      Exception Occurred :Error occurred during deployment: Exception while deploying the app [tsbgam-application-2017-T3-SNAPSHOT] : Exception [EclipseLink-28019] (Eclipse Persistence Services - 2.6.2.qualifier): org.eclipse.persistence.exceptions.EntityManagerSetupException 
     Exception Description: Deployment of PersistenceUnit [tsms_tsbg] failed. Close all factories for this PersistenceUnit. 
     Internal Exception: Exception [EclipseLink-0] (Eclipse Persistence Services - 2.6.2.qualifier): org.eclipse.persistence.exceptions.JPQLException 
     Exception Description: Internal problem encountered while compiling [SELECT NEW TextHistory(i.id, i.fileName, i.importDate) FROM TextHistory i]. 
     Internal Exception: java.lang.NullPointerException. Please see server.log for more details.   ]] 
+0

Da es sich um ein * internes * NPE handelt, während * kompiliert *, klingt es mehr als ein einfacher Benutzerfehler. – Kayaman

+0

@Kayaman Wenn es so einfach ist, was ist die Ursache oder die Lösung? –

+0

Könnten Sie das server.log überprüfen und die Ausnahmen von dort bitte zur Frage hinzufügen? – Mike

Antwort

0

nicht vertraut mit dieser SELECT NEW Syntax, aber sehen Sie verwenden Eclipse (http://wiki.eclipse.org/EclipseLink/Examples/JPA)

Vor etwa einem Jahr wurde ich mit einem Problem, und am Ende des Tages steckte es erschien ein sein Eclipselink Fehler. Es lohnt sich, dies zu überprüfen (https://bugs.eclipse.org/bugs/query.cgi), vielleicht ist es bekannt oder vielleicht haben Sie es gerade gefunden.

Eine weitere Schätzung: org.eclipse.persistence.exceptions.EntityManagerSetupException kann zu falschen Einstellungen des EntityManager führen.

+0

Danke, kannst du mehr Details dazu finden? Wie ein Link oder etwas ... –

+0

Übrigens, ich weiß nicht einmal was Eclipselink ist. Ich benutze Payara und was immer dabei ist. Es unterstützt JPA und ich denke, dass meine Abfragesyntax in Ordnung ist. –

+0

@ peter.petrov Ich habe meine Antwort bearbeitet – Mykola

2

Irgendwelche Hinweise, warum Sie eigentlich die SELECT NEW-Syntax verwenden möchten? Diese Syntax wird meistens im (seltenen) Fall verwendet, dass Sie Felder aus einer Entität auswählen und ein anderes-Objekt mit den Werten dieser Felder erstellen möchten.

In Ihrem Fall konstruieren Sie genau die Entität, aus der Sie auswählen. Dies wird normalerweise als select e from SomeEntity e durchgeführt. (Eigentlich im Gegensatz zu SQL, in JPQL die select Klausel ist optional, solange Sie von einer einzigen Einheit auswählen. So from SomeEntity e nur die gesamte Tabelle auswählt und from SomeEntity e where e <whatever> wählt alle <whatever> Aufzeichnungen.)

Falls das Unternehmen hat einige schwergewichtige Attribute (wie @Lob s) oder @ManyToOne Assoziationen, die Sie nicht zuerst laden möchten, ist der richtige Weg, dies zu tun, sie faul geladen zu machen. Für LOBs erfolgt dies über @Basic(fetchType = LAZY) und für Assoziationen über . Beachten Sie, dass für @ManyToMany und @OneToMany Lazy Loading die Standardeinstellung ist.

Mein Eindruck ist, dass Sie versuchen, JPA "der SQL-Weg" zu machen. Ein solides SQL-Wissen ist ein Muss, um JPA richtig zu verwenden, aber Sie müssen diesen "Paradigmenwechsel" immer von einer relationalen zu einer objektorientierten Perspektive durchführen, um die Dinge so zu machen, wie sie sollen.

BTW, in Bezug auf

Ich weiß nicht einmal, was Eclipse ist

Dieses ziemlich sagt alles :-) JPA ist eine standardisierte Java API - es definiert, wie die Dinge sollen arbeiten, nicht mehr und nicht weniger.Es macht tatsächlich nicht die wirkliche Arbeit - dies bleibt der speziellen JPA-Implementierung, einem persistenten Anbieter, überlassen. Es gibt eine Reihe von JPA-Implementierungen, von denen die bekanntesten Hibernate und Eclipselink sind. Jeder Java EE-Anwendungsserver muss einen JPA-Persistenzprovider enthalten, und es scheint, als ob Ihr Server mit Eclipselink geliefert wird. Eclipselink entstand, als Oracle seine proprietäre JPA-Implementierung namens TopLink der Eclipse Foundation spendete.

Update: habe ich ein bisschen mehr Forschung, und es scheint, als ob der Grund für Ihre Fehler ganz banal: Die SELECT NEW Syntax erfordert, dass Sie den vollständig quialified Namen des Konstrukteurs zu verwenden, das heißt einschließlich Paketnamen. Dies liegt daran, dass Sie select new in eine beliebige POJO-Klasse einfügen können. Es ist nicht erforderlich, dass die Klasse eine JPA-Entität ist. Im Gegensatz dazu verwendet die from-Klausel einfache Namen, da nur @Entity Klassen zulässig sind (die JPA zum Implementierungszeitpunkt auflistet und analysiert).

Warum nicht einen voll qualifizierten Namen führt zu einem NullPointer im Eclipselink Code, ist eine andere Geschichte - scheint wie ein Fehler in Eclipselink.

==> Dies führt zu der Frage, welcher ist besser, select new oder Lazy Loading. Wie immer hängt es von Ihrem Anwendungsfall ab. Das Annotieren der Felder für das verzögerte Laden wird immer berücksichtigt, unabhängig davon, wie die Objekte in den Speicher gelangen. Wenn EnitytManager.find() beispielsweise immer eine vollständige Instanz der Entität zurückgibt, kann dort kein benutzerdefinierter Konstruktor verwendet werden. Aber Anmerkungen zu Feldern gelten natürlich. Das Gleiche gilt für den Zugriff auf Entitäten nach Assoziation - wenn A eine Referenz auf B enthält und Sie A.getB() aufrufen, erhalten Sie eine Instanz von B initialisiert gemäß seinen Anmerkungen.

Verwenden Sie select new ist eine einmalige Technik für den Fall, dass Sie absichtlich von der Standardeinstellung abweichen möchten.

+0

Ich muss mich selbst korrigieren, die optionale 'SELECT'-Klausel ist ein" Feature "(oder ein Fehler, je nachdem, wie Sie es sehen) von Hibernate, genauer gesagt von HQL - Hibernate eigenen Abfrage Sprache. JPQL basiert weitgehend auf HQL, ist aber nicht identisch. Diese spezielle Funktion ist in JPQL nicht standardisiert und Eclipselink "passiert", um es nicht zu unterstützen. – Mihail