【问题标题】:java.lang.NullPointerException because I don't have permission to access the tablejava.lang.NullPointerException 因为我没有访问表的权限
【发布时间】:2012-02-01 11:18:52
【问题描述】:

我有一个 Java EE 项目。当我从数据库访问表时,它返回错误,这是 HQL 查询:

select b from Blacklist b inner join fetch b.users u where b.type ilike :type order by b.date desc

这是错误信息:

18:18:10,694 ERROR [STDERR] java.lang.NullPointerException
18:18:10,694 ERROR [STDERR]     at org.hibernate.engine.query.QueryPlanCache$HQLQueryPlanKey.<init>(QueryPlanCache.java:193)
18:18:10,694 ERROR [STDERR]     at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:87)
18:18:10,694 ERROR [STDERR]     at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:156)
18:18:10,694 ERROR [STDERR]     at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:135)
18:18:10,694 ERROR [STDERR]     at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1650)
18:18:10,694 ERROR [STDERR]     at org.hibernate.ejb.AbstractEntityManagerImpl.createQuery(AbstractEntityManagerImpl.java:93)
18:18:10,694 ERROR [STDERR]     at org.jboss.jpa.tx.TransactionScopedEntityManager.createQuery(TransactionScopedEntityManager.java:139)
18:18:10,694 ERROR [STDERR]     at doku.edp.trasactions.Eds2UtilityBean.getFieldDataFromBlacklist(Eds2UtilityBean.java:325)
18:18:10,694 ERROR [STDERR]     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
18:18:10,695 ERROR [STDERR]     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
18:18:10,695 ERROR [STDERR]     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
18:18:10,695 ERROR [STDERR]     at java.lang.reflect.Method.invoke(Method.java:597)
18:18:10,695 ERROR [STDERR]     at org.jboss.aop.joinpoint.MethodInvocation.invokeTarget(MethodInvocation.java:122)
18:18:10,695 ERROR [STDERR]     at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:111)
18:18:10,695 ERROR [STDERR]     at org.jboss.ejb3.EJBContainerInvocationWrapper.invokeNext(EJBContainerInvocationWrapper.java:69)
18:18:10,695 ERROR [STDERR]     at org.jboss.ejb3.interceptors.aop.InterceptorSequencer.invoke(InterceptorSequencer.java:73)
18:18:10,695 ERROR [STDERR]     at org.jboss.ejb3.interceptors.aop.InterceptorSequencer.aroundInvoke(InterceptorSequencer.java:59)
18:18:10,695 ERROR [STDERR]     at sun.reflect.GeneratedMethodAccessor522.invoke(Unknown Source)
18:18:10,695 ERROR [STDERR]     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
18:18:10,695 ERROR [STDERR]     at java.lang.reflect.Method.invoke(Method.java:597)
18:18:10,695 ERROR [STDERR]     at org.jboss.aop.advice.PerJoinpointAdvice.invoke(PerJoinpointAdvice.java:174)
18:18:10,695 ERROR [STDERR]     at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
18:18:10,695 ERROR [STDERR]     at org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor.fillMethod(InvocationContextInterceptor.java:72)
18:18:10,695 ERROR [STDERR]     at org.jboss.aop.advice.org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor_z_fillMethod_405857447.invoke(InvocationContextInterceptor_z_fillMethod_405857447.java)
18:18:10,695 ERROR [STDERR]     at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
18:18:10,695 ERROR [STDERR]     at org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor.setup(InvocationContextInterceptor.java:88)
18:18:10,695 ERROR [STDERR]     at org.jboss.aop.advice.org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor_z_setup_405857447.invoke(InvocationContextInterceptor_z_setup_405857447.java)
18:18:10,695 ERROR [STDERR]     at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
18:18:10,695 ERROR [STDERR]     at org.jboss.ejb3.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:62)

我看到我的 Postgres 数据库,当我对表执行 SELECT 查询时,我收到了一个警告:

关系白名单的权限被拒绝。

Postgres 上的警告是否是导致此错误的原因?

【问题讨论】:

  • 我们能看到导致错误的代码吗?
  • 你的问题太模糊了。请准确 - 您正在执行的代码是什么,您是如何执行的,粘贴您的堆栈跟踪等。此时我们甚至不知道您的问题是什么。
  • 对不起伙计们..这是错误,我已经编辑了问题

标签: java hibernate postgresql nullpointerexception hql


【解决方案1】:

仅假设您没有发布任何 Java 代码但看起来像您的 NullPointer 可能是一个不包含任何结果的 ResultSet 是因为您没有正确的权限来读取/写入关系“白名单” '。我会检查您使用哪个用户名登录数据库,您使用哪个用户名进行 jdbc 连接。

如果您发布您的 java 代码,我们可以查看 NullPointer 是因为您尝试操作的空结果集还是其他原因。

第一个问题我已经回答了,如果它罗嗦,我很抱歉。

【讨论】:

  • 感谢您的回答,我已经用错误消息编辑了问题。谢谢
  • 嗨 Diaz - 您尝试在 postgres 数据库上运行查询,但出现权限被拒绝错误?查看您的查询,您要查询的表或关系是“黑名单”,而权限被拒绝错误提到“白名单”而不是黑名单。
  • 是的,你说得对,我在 jboss 上没有任何包含权限被拒绝的错误消息。所以这不是主要问题。我的错误表明查询无法访问黑名单表。
【解决方案2】:

从堆栈中,我们可以说您创建的查询有问题。 可以肯定的是,我会添加 as 并从中删除 ilikeselect 子句。

from Blacklist as b inner join fetch b.users as u where b.type like :type order by b.date desc

Expression 中确实存在 ilike 运算符,但我不知道 HQL 尝试执行有关查询。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-18
    • 1970-01-01
    相关资源
    最近更新 更多