2017-08-07 70 views
0

一個VIEW我試圖創建使用以下語法上的Apache點燃觀點:無法創建Apache中的Ignite

emplCache.query(new SqlFieldsQuery(
      "CREATE VIEW EmployeeCopy AS (SELECT * FROM Employee);")).getAll(); 

(假定Employee表可在有數據)。 當此行得到執行,我得到以下異常:

javax.cache.CacheException: class org.apache.ignite.IgniteCheckedException: null 
at org.apache.ignite.internal.processors.query.GridQueryProcessor.querySqlFields(GridQueryProcessor.java:1823) 
at org.apache.ignite.internal.processors.cache.IgniteCacheProxy.query(IgniteCacheProxy.java:795) 
at org.apache.ignite.internal.processors.cache.IgniteCacheProxy.query(IgniteCacheProxy.java:765) 
at com.demo.ignite.test1.EmployeeQuery2.createCopyTable(EmployeeQuery2.java:71) 
at com.demo.ignite.test1.EmployeeQuery2.main(EmployeeQuery2.java:55) 
Caused by: class org.apache.ignite.IgniteCheckedException: null 
at org.apache.ignite.internal.processors.query.GridQueryProcessor.executeQuery(GridQueryProcessor.java:2316) 
at org.apache.ignite.internal.processors.query.GridQueryProcessor.querySqlFields(GridQueryProcessor.java:1820) 
... 4 more 
Caused by: java.lang.NullPointerException 
at org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.queryDistributedSqlFields(IgniteH2Indexing.java:1343) 
at org.apache.ignite.internal.processors.query.GridQueryProcessor$5.applyx(GridQueryProcessor.java:1815) 
at org.apache.ignite.internal.processors.query.GridQueryProcessor$5.applyx(GridQueryProcessor.java:1813) 
at org.apache.ignite.internal.util.lang.IgniteOutClosureX.apply(IgniteOutClosureX.java:36) 
at org.apache.ignite.internal.processors.query.GridQueryProcessor.executeQuery(GridQueryProcessor.java:2293) 
... 5 more 

我看到變量「twoStepQry」是類IgniteH2Indexing.java的1343線空。我無法理解我是否錯過了一些東西。

我正在使用apache-ignite-2.1.0。

另外,如果我創建一個VIEW,它是如何在內部工作的?它是否鎖定在緩存中的條目中,還是將其複製到其他緩存中?

回答