Restrictions.sqlRestriction异常Hibernate与Oracle

时间:2016-07-07 13:14:25

标签: java oracle hibernate

我在使用hibernate和Oracle db执行Criteria with Restriction标准时遇到问题。

简化标准是: criteria1.add(Restrictions.sqlRestriction("{pets}.givenName = 'Wayne')"));

这给了我NullPointerExceltion。我知道我需要设置setEscapeProcessing(false)才能忽略括号' {}'在{pets},但我不知道该怎么做,因为我正在使用Criteria。

如果有人可以帮助我,我会很高兴。

这是生成的例外:

1 ERROR http-8080-2 lists.SimplePagingList - Could not load current list

显示java.lang.NullPointerException     at oracle.jdbc.driver.T4C8Oall.getNumRows(T4C8Oall.java:876)     at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:831)     at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1039)     at oracle.jdbc.driver.T4CPreparedStatement.executeMaybeDescribe(T4CPreparedStatement.java:850)     at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1134)     at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3339)     at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3384)     at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:93)     在org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:186)     在org.hibernate.loader.Loader.getResultSet(Loader.java:1787)     在org.hibernate.loader.Loader.doQuery(Loader.java:674)     在org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)     在org.hibernate.loader.Loader.doList(Loader.java:2213)     在org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2104)     在org.hibernate.loader.Loader.list(Loader.java:2099)     在org.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:94)     在org.hibernate.impl.SessionImpl.list(SessionImpl.java:1569)     在org.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:283)

1 个答案:

答案 0 :(得分:0)

我设法解决了这个问题。

第一个问题是{pets}我只需使用{alias}。

第二个问题是我正在创建标准:

Criteria criteria1 = criteriaOrg.**createAlias**(...)

我已将其更改为:

Criteria criteria1 = criteriaOrg.**createCriteria**(...)