2016-04-26 13 views
0

UNIONを使用して、複数のノードタイプのすべての一意の識別子(jcr:uuid)を収集し、実際のSELECT文が成功している間にInvalidQueryExceptionを取得しようとしています。
Jackrabbitのバージョン:2.12.1JCR-SQL2 UNIONを使用したInvalidQueryException - 期待値:<end>

SELECT [jcr:uuid] FROM [base:nodeType1] 
UNION 
SELECT [jcr:uuid] FROM [base:nodeType2] 

のStackTrace:

SELECT [jcr:uuid] FROM [base:nodeType1] 
UNION(*)SELECT [jcr:uuid] FROM [base:nodeType2]; expected: <end> 
at org.apache.jackrabbit.rmi.server.ServerObject.getRepositoryException(ServerObject.java:113) 
    at org.apache.jackrabbit.rmi.server.ServerQueryManager.createQuery(ServerQueryManager.java:74) 
    at sun.reflect.GeneratedMethodAccessor2078.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:323) 
    at sun.rmi.transport.Transport$1.run(Transport.java:200) 
    at sun.rmi.transport.Transport$1.run(Transport.java:197) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at sun.rmi.transport.Transport.serviceCall(Transport.java:196) 
    at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:568) 
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:826) 
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:683) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
at java.lang.Thread.run(Thread.java:745) 
at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:276) 
at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:253) 
at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:162) 
at org.apache.jackrabbit.rmi.server.ServerQueryManager_Stub.createQuery(Unknown Source) 
at org.apache.jackrabbit.rmi.client.ClientQueryManager.createQuery(ClientQueryManager.java:66) 

答えて

0

あなたのクエリに複数のセレクタが含まれています、したがって、あなたはあなたのクエリでセレクタ名を使用する必要があります。ちょうど1つのセレクタがある場合、名前はオプションです。

これを試してみてください:

SELECT [jcr:uuid] FROM [base:nodeType1] AS a 
UNION 
SELECT [jcr:uuid] FROM [base:nodeType2] AS a 
+0

おかげオリバーが、上記の推奨ソリューションはどちらか動作しませんでした。
以下のクエリを試してみましたが、どちらもうまくいきません。 FROM:[UUID JCR]

'SELECT [ベース:nodeType1] UNION SELECT AS:FROM [JCR UUID] [基地:nodeType2]:[ベースから[UUID JCR] A'は

'選択すると: [ベースからUUID]:nodeType1] UNIONようJCRを選択 nodeType2] A'は

'選択すると[JCR:UUID] [ベースFROM:nodeType1] UNION AS SELECT B [ jcr:uuid] FROM [base:nodeType2] AS b'

user3150236

関連する問題