Jpa 为什么我在servlet中得到一个无效的模式错误,而在主函数中没有相同的代码?
我和一些学生有一个项目。 欢迎访问的网站包括:Jpa 为什么我在servlet中得到一个无效的模式错误,而在主函数中没有相同的代码?,jpa,intellij-idea,mariadb,criteria-api,apache-tomee,Jpa,Intellij Idea,Mariadb,Criteria Api,Apache Tomee,我和一些学生有一个项目。 欢迎访问的网站包括: TomEE 1.7.3(羽流版本) MariaDB:服务器版本:10.1.10-MariaDB-1~杰西日志MariaDB.org二进制分发 IDE:IntellijIDEA 15.0.2 JRE:1.8.0_51 为了从数据库中获取数据,我使用标准API/JPA 以下是工作的主要功能: public static void main(String[] args) { EntityManagerFactory emf = Persis
- TomEE 1.7.3(羽流版本)
- MariaDB:服务器版本:10.1.10-MariaDB-1~杰西日志MariaDB.org二进制分发
- IDE:IntellijIDEA 15.0.2
- JRE:1.8.0_51
为了从数据库中获取数据,我使用标准API/JPA 以下是工作的主要功能:
public static void main(String[] args) {
EntityManagerFactory emf = Persistence.createEntityManagerFactory("RefugEEWelcomeApp");
EntityManager em = emf.createEntityManager();
CriteriaBuilder builder = em.getCriteriaBuilder();
CriteriaQuery<TblProductCategoryEntity> query = builder.createQuery(TblProductCategoryEntity.class);
Root<TblProductCategoryEntity> productCategoryEntityRoot = query.from(TblProductCategoryEntity.class);
Predicate mainCatNull = builder.isNull(productCategoryEntityRoot.get(TblProductCategoryEntity_.maincategory));
query.select(productCategoryEntityRoot).where(mainCatNull);
List<TblProductCategoryEntity> results = em.createQuery(query).getResultList();
for(Object o:results)
{
TblProductCategoryEntity e=(TblProductCategoryEntity) o;
System.out.println(
"ID : "+e.getIdtblProductCategory()
+"\tAtt: "+e.getAttachments()
+"\tCAT: "+e.getMaincategory());
}
}
这里是我的servlet:
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
EntityManagerFactory emf = Persistence.createEntityManagerFactory("RefugEEWelcomeApp");
EntityManager em = emf.createEntityManager();
CriteriaBuilder builder = em.getCriteriaBuilder();
CriteriaQuery<TblProductCategoryEntity> query = builder.createQuery(TblProductCategoryEntity.class);
Root<TblProductCategoryEntity> productCategoryEntityRoot = query.from(TblProductCategoryEntity.class);
Predicate mainCatNull = builder.isNull(productCategoryEntityRoot.get(TblProductCategoryEntity_.maincategory));
query.select(productCategoryEntityRoot).where(mainCatNull);
List<TblProductCategoryEntity> results = em.createQuery(query).getResultList();
List<String> urls = new ArrayList<>();
List<Integer> subCat = new ArrayList<>();
for (Object o: results){
TblProductCategoryEntity e=(TblProductCategoryEntity) o;
urls.add(e.getAttachments());
subCat.add(e.getIdtblProductCategory());
System.out.println(e.getAttachments());
System.out.println(e.getIdtblProductCategory());
}
request.setAttribute("img", urls);
request.setAttribute("id", subCat);
getServletContext().getRequestDispatcher("/category.jsp").forward(request, response);
}
您似乎没有配置使用MySQL后端的有效数据源 org.hsqldb.hsqleexception:架构名称无效:RefugeeSweelComeApp 取而代之的是,TomEE容器使用默认的后端配置,默认情况下是HSQLDB驱动的。这应该改变,看看:
JtaManaged=true
DataSourceCreator=tomcat
validationQuery=选择1
初始大小=2
RemoveBandoned=true
RemoveBandonedTimeout=120
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://someFQDNHostnameOrIP/someDBname
用户名=您的用户名
密码=您的密码
您似乎没有配置使用MySQL后端的有效数据源
org.hsqldb.hsqleexception:架构名称无效:RefugeeSweelComeApp
取而代之的是,TomEE容器使用默认的后端配置,默认情况下是HSQLDB驱动的。这应该改变,看看:
JtaManaged=true
DataSourceCreator=tomcat
validationQuery=选择1
初始大小=2
RemoveBandoned=true
RemoveBandonedTimeout=120
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://someFQDNHostnameOrIP/someDBname
用户名=您的用户名
密码=您的密码
和
看起来可疑。为了排除这一点:为什么您在这里没有一些凭据?@MWiesner jdbc.user和jdbc.password在这里没有凭据,只是为了这个问题,它通常存在于persistence.xml中。所以请查看我对第二条评论的建议。也许这可以帮助您在实际问题的背景下为稳定的设置进行配置:@MWiesner-thx对于您的建议和示例链接,这就是问题所在。对我来说有点不合逻辑,但配置是配置。。。很高兴见到你,公共假日和新年快乐。如果这对你有帮助,也许你可以接受。现在一切正常。
和
看起来可疑。为了排除这一点:为什么您在这里没有一些凭据?@MWiesner jdbc.user和jdbc.password在这里没有凭据,只是为了这个问题,它通常存在于persistence.xml中。所以请查看我对第二条评论的建议。也许这可以帮助您在实际问题的背景下为稳定的设置进行配置:@MWiesner-thx对于您的建议和示例链接,这就是问题所在。对我来说有点不合逻辑,但配置是配置。。。很高兴见到你,公共假日和新年快乐。如果这对你有帮助,而且现在一切正常,也许你可以接受。
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
EntityManagerFactory emf = Persistence.createEntityManagerFactory("RefugEEWelcomeApp");
EntityManager em = emf.createEntityManager();
CriteriaBuilder builder = em.getCriteriaBuilder();
CriteriaQuery<TblProductCategoryEntity> query = builder.createQuery(TblProductCategoryEntity.class);
Root<TblProductCategoryEntity> productCategoryEntityRoot = query.from(TblProductCategoryEntity.class);
Predicate mainCatNull = builder.isNull(productCategoryEntityRoot.get(TblProductCategoryEntity_.maincategory));
query.select(productCategoryEntityRoot).where(mainCatNull);
List<TblProductCategoryEntity> results = em.createQuery(query).getResultList();
List<String> urls = new ArrayList<>();
List<Integer> subCat = new ArrayList<>();
for (Object o: results){
TblProductCategoryEntity e=(TblProductCategoryEntity) o;
urls.add(e.getAttachments());
subCat.add(e.getIdtblProductCategory());
System.out.println(e.getAttachments());
System.out.println(e.getIdtblProductCategory());
}
request.setAttribute("img", urls);
request.setAttribute("id", subCat);
getServletContext().getRequestDispatcher("/category.jsp").forward(request, response);
}
HTTP Status 500 - Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.6.1.v20150916-55dc7c3): org.eclipse.persistence.exceptions.DatabaseException
type Exception report
message Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.6.1.v20150916-55dc7c3): org.eclipse.persistence.exceptions.DatabaseException
description The server encountered an internal error that prevented it from fulfilling this request.
exception
javax.persistence.PersistenceException: Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.6.1.v20150916-55dc7c3): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: java.sql.SQLException: invalid schema name: REFUGEESWELCOMEAPP
Error Code: -4850
Call: SELECT idtbl_product_category, attachments, maincategory FROM RefugeesWelcomeApp.tbl_product_category WHERE (maincategory IS NULL)
Query: ReadAllQuery(referenceClass=TblProductCategoryEntity sql="SELECT idtbl_product_category, attachments, maincategory FROM RefugeesWelcomeApp.tbl_product_category WHERE (maincategory IS NULL)")
org.eclipse.persistence.internal.jpa.QueryImpl.getDetailedException(QueryImpl.java:382)
org.eclipse.persistence.internal.jpa.QueryImpl.executeReadQuery(QueryImpl.java:260)
org.eclipse.persistence.internal.jpa.QueryImpl.getResultList(QueryImpl.java:473)
ra.servlets.getMainCategoryNative.doGet(getMainCategoryNative.java:31)
javax.servlet.http.HttpServlet.service(HttpServlet.java:624)
javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
root cause
Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.6.1.v20150916-55dc7c3): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: java.sql.SQLException: invalid schema name: REFUGEESWELCOMEAPP
Error Code: -4850
Call: SELECT idtbl_product_category, attachments, maincategory FROM RefugeesWelcomeApp.tbl_product_category WHERE (maincategory IS NULL)
Query: ReadAllQuery(referenceClass=TblProductCategoryEntity sql="SELECT idtbl_product_category, attachments, maincategory FROM RefugeesWelcomeApp.tbl_product_category WHERE (maincategory IS NULL)")
org.eclipse.persistence.exceptions.DatabaseException.sqlException(DatabaseException.java:340)
org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.basicExecuteCall(DatabaseAccessor.java:684)
org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeCall(DatabaseAccessor.java:560)
org.eclipse.persistence.internal.sessions.AbstractSession.basicExecuteCall(AbstractSession.java:2055)
org.eclipse.persistence.sessions.server.ServerSession.executeCall(ServerSession.java:570)
org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:242)
org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:228)
org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeSelectCall(DatasourceCallQueryMechanism.java:299)
org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.selectAllRows(DatasourceCallQueryMechanism.java:694)
org.eclipse.persistence.internal.queries.ExpressionQueryMechanism.selectAllRowsFromTable(ExpressionQueryMechanism.java:2740)
org.eclipse.persistence.internal.queries.ExpressionQueryMechanism.selectAllRows(ExpressionQueryMechanism.java:2693)
org.eclipse.persistence.queries.ReadAllQuery.executeObjectLevelReadQuery(ReadAllQuery.java:559)
org.eclipse.persistence.queries.ObjectLevelReadQuery.executeDatabaseQuery(ObjectLevelReadQuery.java:1175)
org.eclipse.persistence.queries.DatabaseQuery.execute(DatabaseQuery.java:904)
org.eclipse.persistence.queries.ObjectLevelReadQuery.execute(ObjectLevelReadQuery.java:1134)
org.eclipse.persistence.queries.ReadAllQuery.execute(ReadAllQuery.java:460)
org.eclipse.persistence.queries.ObjectLevelReadQuery.executeInUnitOfWork(ObjectLevelReadQuery.java:1222)
org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.internalExecuteQuery(UnitOfWorkImpl.java:2896)
org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1857)
org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1839)
org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1804)
org.eclipse.persistence.internal.jpa.QueryImpl.executeReadQuery(QueryImpl.java:258)
org.eclipse.persistence.internal.jpa.QueryImpl.getResultList(QueryImpl.java:473)
ra.servlets.getMainCategoryNative.doGet(getMainCategoryNative.java:31)
javax.servlet.http.HttpServlet.service(HttpServlet.java:624)
javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
root cause
java.sql.SQLException: invalid schema name: REFUGEESWELCOMEAPP
org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
org.hsqldb.jdbc.JDBCPreparedStatement.<init>(Unknown Source)
org.hsqldb.jdbc.JDBCConnection.prepareStatement(Unknown Source)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:606)
org.apache.tomcat.jdbc.pool.ProxyConnection.invoke(ProxyConnection.java:126)
org.apache.tomcat.jdbc.pool.JdbcInterceptor.invoke(JdbcInterceptor.java:109)
org.apache.tomcat.jdbc.pool.DisposableConnectionFacade.invoke(DisposableConnectionFacade.java:80)
com.sun.proxy.$Proxy86.prepareStatement(Unknown Source)
org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.prepareStatement(DatabaseAccessor.java:1565)
org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.prepareStatement(DatabaseAccessor.java:1514)
org.eclipse.persistence.internal.databaseaccess.DatabaseCall.prepareStatement(DatabaseCall.java:778)
org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.basicExecuteCall(DatabaseAccessor.java:621)
org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeCall(DatabaseAccessor.java:560)
org.eclipse.persistence.internal.sessions.AbstractSession.basicExecuteCall(AbstractSession.java:2055)
org.eclipse.persistence.sessions.server.ServerSession.executeCall(ServerSession.java:570)
org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:242)
org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:228)
org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeSelectCall(DatasourceCallQueryMechanism.java:299)
org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.selectAllRows(DatasourceCallQueryMechanism.java:694)
org.eclipse.persistence.internal.queries.ExpressionQueryMechanism.selectAllRowsFromTable(ExpressionQueryMechanism.java:2740)
org.eclipse.persistence.internal.queries.ExpressionQueryMechanism.selectAllRows(ExpressionQueryMechanism.java:2693)
org.eclipse.persistence.queries.ReadAllQuery.executeObjectLevelReadQuery(ReadAllQuery.java:559)
org.eclipse.persistence.queries.ObjectLevelReadQuery.executeDatabaseQuery(ObjectLevelReadQuery.java:1175)
org.eclipse.persistence.queries.DatabaseQuery.execute(DatabaseQuery.java:904)
org.eclipse.persistence.queries.ObjectLevelReadQuery.execute(ObjectLevelReadQuery.java:1134)
org.eclipse.persistence.queries.ReadAllQuery.execute(ReadAllQuery.java:460)
org.eclipse.persistence.queries.ObjectLevelReadQuery.executeInUnitOfWork(ObjectLevelReadQuery.java:1222)
org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.internalExecuteQuery(UnitOfWorkImpl.java:2896)
org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1857)
org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1839)
org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1804)
org.eclipse.persistence.internal.jpa.QueryImpl.executeReadQuery(QueryImpl.java:258)
org.eclipse.persistence.internal.jpa.QueryImpl.getResultList(QueryImpl.java:473)
ra.servlets.getMainCategoryNative.doGet(getMainCategoryNative.java:31)
javax.servlet.http.HttpServlet.service(HttpServlet.java:624)
javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
root cause
org.hsqldb.HsqlException: invalid schema name: REFUGEESWELCOMEAPP
org.hsqldb.error.Error.error(Unknown Source)
org.hsqldb.error.Error.error(Unknown Source)
org.hsqldb.SchemaManager.getSchemaHsqlName(Unknown Source)
org.hsqldb.SchemaManager.getSchemaName(Unknown Source)
org.hsqldb.Session.getSchemaName(Unknown Source)
org.hsqldb.SchemaManager.getTable(Unknown Source)
org.hsqldb.ParserDQL.readTableName(Unknown Source)
org.hsqldb.ParserDQL.readTableOrSubquery(Unknown Source)
org.hsqldb.ParserDQL.XreadTableReference(Unknown Source)
org.hsqldb.ParserDQL.XreadFromClause(Unknown Source)
org.hsqldb.ParserDQL.XreadTableExpression(Unknown Source)
org.hsqldb.ParserDQL.XreadQuerySpecification(Unknown Source)
org.hsqldb.ParserDQL.XreadSimpleTable(Unknown Source)
org.hsqldb.ParserDQL.XreadQueryPrimary(Unknown Source)
org.hsqldb.ParserDQL.XreadQueryTerm(Unknown Source)
org.hsqldb.ParserDQL.XreadQueryExpressionBody(Unknown Source)
org.hsqldb.ParserDQL.XreadQueryExpression(Unknown Source)
org.hsqldb.ParserDQL.compileCursorSpecification(Unknown Source)
org.hsqldb.ParserCommand.compilePart(Unknown Source)
org.hsqldb.ParserCommand.compileStatement(Unknown Source)
org.hsqldb.Session.compileStatement(Unknown Source)
org.hsqldb.StatementManager.compile(Unknown Source)
org.hsqldb.Session.execute(Unknown Source)
org.hsqldb.jdbc.JDBCPreparedStatement.<init>(Unknown Source)
org.hsqldb.jdbc.JDBCConnection.prepareStatement(Unknown Source)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:606)
org.apache.tomcat.jdbc.pool.ProxyConnection.invoke(ProxyConnection.java:126)
org.apache.tomcat.jdbc.pool.JdbcInterceptor.invoke(JdbcInterceptor.java:109)
org.apache.tomcat.jdbc.pool.DisposableConnectionFacade.invoke(DisposableConnectionFacade.java:80)
com.sun.proxy.$Proxy86.prepareStatement(Unknown Source)
org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.prepareStatement(DatabaseAccessor.java:1565)
org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.prepareStatement(DatabaseAccessor.java:1514)
org.eclipse.persistence.internal.databaseaccess.DatabaseCall.prepareStatement(DatabaseCall.java:778)
org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.basicExecuteCall(DatabaseAccessor.java:621)
org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeCall(DatabaseAccessor.java:560)
org.eclipse.persistence.internal.sessions.AbstractSession.basicExecuteCall(AbstractSession.java:2055)
org.eclipse.persistence.sessions.server.ServerSession.executeCall(ServerSession.java:570)
org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:242)
org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:228)
org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeSelectCall(DatasourceCallQueryMechanism.java:299)
org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.selectAllRows(DatasourceCallQueryMechanism.java:694)
org.eclipse.persistence.internal.queries.ExpressionQueryMechanism.selectAllRowsFromTable(ExpressionQueryMechanism.java:2740)
org.eclipse.persistence.internal.queries.ExpressionQueryMechanism.selectAllRows(ExpressionQueryMechanism.java:2693)
org.eclipse.persistence.queries.ReadAllQuery.executeObjectLevelReadQuery(ReadAllQuery.java:559)
org.eclipse.persistence.queries.ObjectLevelReadQuery.executeDatabaseQuery(ObjectLevelReadQuery.java:1175)
org.eclipse.persistence.queries.DatabaseQuery.execute(DatabaseQuery.java:904)
org.eclipse.persistence.queries.ObjectLevelReadQuery.execute(ObjectLevelReadQuery.java:1134)
org.eclipse.persistence.queries.ReadAllQuery.execute(ReadAllQuery.java:460)
org.eclipse.persistence.queries.ObjectLevelReadQuery.executeInUnitOfWork(ObjectLevelReadQuery.java:1222)
org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.internalExecuteQuery(UnitOfWorkImpl.java:2896)
org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1857)
org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1839)
org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1804)
org.eclipse.persistence.internal.jpa.QueryImpl.executeReadQuery(QueryImpl.java:258)
org.eclipse.persistence.internal.jpa.QueryImpl.getResultList(QueryImpl.java:473)
ra.servlets.getMainCategoryNative.doGet(getMainCategoryNative.java:31)
javax.servlet.http.HttpServlet.service(HttpServlet.java:624)
javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
note The full stack trace of the root cause is available in the Apache Tomcat (TomEE)/7.0.63 (1.7.3) logs.
Apache Tomcat (TomEE)/7.0.63 (1.7.3)
HTTP Status 500 - Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.6.1.v20150916-55dc7c3): org.eclipse.persistence.exceptions.DatabaseException
type Exception report
message Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.6.1.v20150916-55dc7c3): org.eclipse.persistence.exceptions.DatabaseException
description The server encountered an internal error that prevented it from fulfilling this request.
exception
javax.persistence.PersistenceException: Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.6.1.v20150916-55dc7c3): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: java.sql.SQLSyntaxErrorException: user lacks privilege or object not found: TBL_PRODUCT_CATEGORY
Error Code: -5501
Call: SELECT idtbl_product_category, attachments, maincategory FROM tbl_product_category WHERE (maincategory IS NULL)
Query: ReadAllQuery(referenceClass=TblProductCategoryEntity sql="SELECT idtbl_product_category, attachments, maincategory FROM tbl_product_category WHERE (maincategory IS NULL)")
org.eclipse.persistence.internal.jpa.QueryImpl.getDetailedException(QueryImpl.java:382)
org.eclipse.persistence.internal.jpa.QueryImpl.executeReadQuery(QueryImpl.java:260)
org.eclipse.persistence.internal.jpa.QueryImpl.getResultList(QueryImpl.java:473)
ra.servlets.getMainCategoryNative.doGet(getMainCategoryNative.java:31)
javax.servlet.http.HttpServlet.service(HttpServlet.java:624)
javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
root cause
Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.6.1.v20150916-55dc7c3): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: java.sql.SQLSyntaxErrorException: user lacks privilege or object not found: TBL_PRODUCT_CATEGORY
Error Code: -5501
Call: SELECT idtbl_product_category, attachments, maincategory FROM tbl_product_category WHERE (maincategory IS NULL)
Query: ReadAllQuery(referenceClass=TblProductCategoryEntity sql="SELECT idtbl_product_category, attachments, maincategory FROM tbl_product_category WHERE (maincategory IS NULL)")
org.eclipse.persistence.exceptions.DatabaseException.sqlException(DatabaseException.java:340)
org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.basicExecuteCall(DatabaseAccessor.java:684)
org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeCall(DatabaseAccessor.java:560)
org.eclipse.persistence.internal.sessions.AbstractSession.basicExecuteCall(AbstractSession.java:2055)
org.eclipse.persistence.sessions.server.ServerSession.executeCall(ServerSession.java:570)
org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:242)
org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:228)
org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeSelectCall(DatasourceCallQueryMechanism.java:299)
org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.selectAllRows(DatasourceCallQueryMechanism.java:694)
org.eclipse.persistence.internal.queries.ExpressionQueryMechanism.selectAllRowsFromTable(ExpressionQueryMechanism.java:2740)
org.eclipse.persistence.internal.queries.ExpressionQueryMechanism.selectAllRows(ExpressionQueryMechanism.java:2693)
org.eclipse.persistence.queries.ReadAllQuery.executeObjectLevelReadQuery(ReadAllQuery.java:559)
org.eclipse.persistence.queries.ObjectLevelReadQuery.executeDatabaseQuery(ObjectLevelReadQuery.java:1175)
org.eclipse.persistence.queries.DatabaseQuery.execute(DatabaseQuery.java:904)
org.eclipse.persistence.queries.ObjectLevelReadQuery.execute(ObjectLevelReadQuery.java:1134)
org.eclipse.persistence.queries.ReadAllQuery.execute(ReadAllQuery.java:460)
org.eclipse.persistence.queries.ObjectLevelReadQuery.executeInUnitOfWork(ObjectLevelReadQuery.java:1222)
org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.internalExecuteQuery(UnitOfWorkImpl.java:2896)
org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1857)
org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1839)
org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1804)
org.eclipse.persistence.internal.jpa.QueryImpl.executeReadQuery(QueryImpl.java:258)
org.eclipse.persistence.internal.jpa.QueryImpl.getResultList(QueryImpl.java:473)
ra.servlets.getMainCategoryNative.doGet(getMainCategoryNative.java:31)
javax.servlet.http.HttpServlet.service(HttpServlet.java:624)
javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
root cause
java.sql.SQLSyntaxErrorException: user lacks privilege or object not found: TBL_PRODUCT_CATEGORY
org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
org.hsqldb.jdbc.JDBCPreparedStatement.<init>(Unknown Source)
org.hsqldb.jdbc.JDBCConnection.prepareStatement(Unknown Source)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)...
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="2.0">
<persistence-unit name="RefugEEWelcomeApp" transaction-type="RESOURCE_LOCAL">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<class>ra.model.RltnProductCategoryEntity</class>
<class>ra.model.RltnProductCategoryLanguageEntity</class>
<class>ra.model.RltnProductCategoryShopCategoryEntity</class>
<class>ra.model.RltnProductLanguageEntity</class>
<class>ra.model.RltnProductShopcategoryEntity</class>
<class>ra.model.RltnShopCategoryLanguageEntity</class>
<class>ra.model.TblLanguageEntity</class>
<class>ra.model.TblProductEntity</class>
<class>ra.model.TblProductCategoryEntity</class>
<class>ra.model.TblShopCategoryEntity</class>
<class>ra.model.TblShopsEntity</class>
<properties>
<property name="javax.persistence.logging.level" value="INFO"/>
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/RefugeesWelcomeApp"/>
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
<property name="javax.persistence.jdbc.user" value=""/>
<property name="javax.persistence.jdbc.password" value=""/>
</properties>
</persistence-unit>
</persistence>
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
<jsp-config>
<jsp-property-group>
<url-pattern>*.jsp</url-pattern>
<page-encoding>UTF-8</page-encoding>
</jsp-property-group>
</jsp-config>
<session-config>
<session-timeout>1</session-timeout>
</session-config>
<servlet>
<description>Getting MainCat ID for Subcat searching</description>
<servlet-name>getMainCat</servlet-name>
<servlet-class>ra.servlets.getMainCategory</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>getMainCat</servlet-name>
<url-pattern>/getMainCat</url-pattern>
</servlet-mapping>
</web-app>
@Entity
@Table(name = "tbl_product_category", schema = "RefugeesWelcomeApp")
public class TblProductCategoryEntity {
private int idtblProductCategory;
private Integer maincategory;
private String attachments;
@Id
@Column(name = "idtbl_product_category")
public int getIdtblProductCategory() {
return idtblProductCategory;
}
public void setIdtblProductCategory(int idtblProductCategory) {
this.idtblProductCategory = idtblProductCategory;
}
@Basic
@Column(name = "maincategory")
public Integer getMaincategory() {
return maincategory;
}
public void setMaincategory(Integer maincategory) {
this.maincategory = maincategory;
}
@Basic
@Column(name = "attachments")
public String getAttachments() {
return attachments;
}
public void setAttachments(String attachments) {
this.attachments = attachments;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
TblProductCategoryEntity that = (TblProductCategoryEntity) o;
if (idtblProductCategory != that.idtblProductCategory) return false;
if (maincategory != null ? !maincategory.equals(that.maincategory) : that.maincategory != null) return false;
if (attachments != null ? !attachments.equals(that.attachments) : that.attachments != null) return false;
return true;
}
@Override
public int hashCode() {
int result = idtblProductCategory;
result = 31 * result + (maincategory != null ? maincategory.hashCode() : 0);
result = 31 * result + (attachments != null ? attachments.hashCode() : 0);
return result;
}
}
<?xml version="1.0" encoding="utf-8"?>
<resources>
<Resource id="myDS-Name" type="javax.sql.DataSource">
JtaManaged = true
DataSourceCreator = tomcat
validationQuery = SELECT 1
initialSize = 2
removeAbandoned = true
removeAbandonedTimeout = 120
driverClassName = com.mysql.jdbc.Driver
url = jdbc:mysql://someFQDNHostnameOrIP/someDBname
username = your-username
password = your-pw
</Resource>
</resources>