DataImportHandler *can't* work out with Oracle 12c and Solr 6.3. Query in nested entities are called, the mapping values are not in child's WHERE clause. What is the cause of this error? I want some help.
## data-config.xml <dataConfig> <dataSource type="JdbcDataSource" driver="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@localhost:1521/bookstore" user="bookadmin" password="bookpass"/> <document> <entity name="books" query="select book_id, title from books where deleted = 0" > <field column="book_id" name="book_id" /> <field column="title" name="title" /> <entity name="contents" query="select book_id, content_id, content from contents where book_id = ${books.book_id} and deleted = 0" > <field column="book_id" name="book_id" /> <field column="content_id" name="content_id" /> <field column="content" name="content" /> </entity> </entity> </document> </dataConfig> ## Tables CREATE TABLE books ( book_id number(11) NOT NULL PRIMARY KEY, title varchar2(128) DEFAULT NULL, deleted number(1) DEFAULT 0 ); CREATE TABLE contents ( book_id number(11) NOT NULL, content_id number(11) NOT NULL, content varchar2(2048) NOT NULL, deleted number(1) DEFAULT 0 ); ALTER TABLE contents ADD CONSTRAINT contents_pk PRIMARY KEY (book_id, content_id); ALTER TABLE contents ADD CONSTRAINT contents_fk FOREIGN KEY (book_id) REFERENCES books(book_id); ## Data INSERT INTO books(book_id, title) VALUES ('1', 'First'); INSERT INTO books(book_id, title) VALUES ('2', 'Second'); INSERT INTO books(book_id, title) VALUES ('3', 'Third'); INSERT INTO contents(book_id, content_id, content) VALUES (1,1,'During the Middle Ages'); INSERT INTO contents(book_id, content_id, content) VALUES (1,2,'The Renaissance began in Italy'); INSERT INTO contents(book_id, content_id, content) VALUES (2,1,'By the mid-19th century'); INSERT INTO contents(book_id, content_id, content) VALUES (3,1,'Italy has the third largest economy'); ## schema.xml <field name="book_id" type="tint" multiValued="false" indexed="true" stored="true" required="true" /> <field name="content_id" type="tint" multiValued="false" indexed="true" stored="true" /> <field name="title" type="text_general" multiValued="false" indexed="true" stored="true"/> <field name="content" type="text_general" multiValued="true" indexed="true" stored="true" /> ## Error messages in /var/solr/logs/solr.log 2017-01-20 12:29:00.853 ERROR (Thread-17) [ x:bookstore] o.a.s.h.d.DocBuilder Exception while processing: books document : SolrInputDocument(fields: [book_id=1, title=First]):org.apache.solr.handler.dataimport.DataImportHandlerException: Unable to execute query: select book_id, content_id, content from contents where book_id = and deleted = 0 Processing Document # 1 at org.apache.solr.handler.dataimport.DataImportHandlerException.wrapAndThrow(DataImportHandlerException.java:69) at org.apache.solr.handler.dataimport.JdbcDataSource$ResultSetIterator.<init>(JdbcDataSource.java:327) at org.apache.solr.handler.dataimport.JdbcDataSource.createResultSetIterator(JdbcDataSource.java:288) at org.apache.solr.handler.dataimport.JdbcDataSource.getData(JdbcDataSource.java:283) at org.apache.solr.handler.dataimport.JdbcDataSource.getData(JdbcDataSource.java:52) at org.apache.solr.handler.dataimport.SqlEntityProcessor.initQuery(SqlEntityProcessor.java:59) at org.apache.solr.handler.dataimport.SqlEntityProcessor.nextRow(SqlEntityProcessor.java:73) at org.apache.solr.handler.dataimport.EntityProcessorWrapper.nextRow(EntityProcessorWrapper.java:244) at org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:475) at org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:516) at org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:414) at org.apache.solr.handler.dataimport.DocBuilder.doFullDump(DocBuilder.java:329) at org.apache.solr.handler.dataimport.DocBuilder.execute(DocBuilder.java:232) at org.apache.solr.handler.dataimport.DataImporter.doFullImport(DataImporter.java:416) at org.apache.solr.handler.dataimport.DataImporter.runCmd(DataImporter.java:475) at org.apache.solr.handler.dataimport.DataImporter.lambda$runAsync$0(DataImporter.java:458) at java.lang.Thread.run(Thread.java:745) Caused by: java.sql.SQLSyntaxErrorException: ORA-00936: missing expression at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:450) at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:399) at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:1059) at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:522) at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:257) at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:587) at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:210) at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:30) at oracle.jdbc.driver.T4CStatement.executeForDescribe(T4CStatement.java:762) at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:925) at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1111) at oracle.jdbc.driver.OracleStatement.executeInternal(OracleStatement.java:1792) at oracle.jdbc.driver.OracleStatement.execute(OracleStatement.java:1745) at oracle.jdbc.driver.OracleStatementWrapper.execute(OracleStatementWrapper.java:334) at org.apache.solr.handler.dataimport.JdbcDataSource$ResultSetIterator.executeStatement(JdbcDataSource.java:349) at org.apache.solr.handler.dataimport.JdbcDataSource$ResultSetIterator.<init>(JdbcDataSource.java:321) ... 15 more 2017-01-20 12:29:00.854 INFO (Thread-17) [ x:bookstore] o.a.s.u.p.LogUpdateProcessorFactory [bookstore] webapp=/solr path=/dataimport params={core=bookstore&optimize=false&indent=on&commit=true&name=dataimport&clean=true&wt=json&command=full-import&_=1484914018516&verbose=false} status=0 QTime=11{deleteByQuery=*:* (-1557046587856781312)} 0 601 2017-01-20 12:29:00.856 ERROR (Thread-17) [ x:bookstore] o.a.s.h.d.DataImporter Full Import failed:java.lang.RuntimeException: java.lang.RuntimeException: org.apache.solr.handler.dataimport.DataImportHandlerException: Unable to execute query: select book_id, content_id, content from contents where book_id = and deleted = 0 Processing Document # 1 at org.apache.solr.handler.dataimport.DocBuilder.execute(DocBuilder.java:270) at org.apache.solr.handler.dataimport.DataImporter.doFullImport(DataImporter.java:416) at org.apache.solr.handler.dataimport.DataImporter.runCmd(DataImporter.java:475) at org.apache.solr.handler.dataimport.DataImporter.lambda$runAsync$0(DataImporter.java:458) at java.lang.Thread.run(Thread.java:745) Caused by: java.lang.RuntimeException: org.apache.solr.handler.dataimport.DataImportHandlerException: Unable to execute query: select book_id, content_id, content from contents where book_id = and deleted = 0 Processing Document # 1 at org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:416) at org.apache.solr.handler.dataimport.DocBuilder.doFullDump(DocBuilder.java:329) at org.apache.solr.handler.dataimport.DocBuilder.execute(DocBuilder.java:232) ... 4 more Caused by: org.apache.solr.handler.dataimport.DataImportHandlerException: Unable to execute query: select book_id, content_id, content from contents where book_id = and deleted = 0 Processing Document # 1 at org.apache.solr.handler.dataimport.DataImportHandlerException.wrapAndThrow(DataImportHandlerException.java:69) at org.apache.solr.handler.dataimport.JdbcDataSource$ResultSetIterator.<init>(JdbcDataSource.java:327) at org.apache.solr.handler.dataimport.JdbcDataSource.createResultSetIterator(JdbcDataSource.java:288) at org.apache.solr.handler.dataimport.JdbcDataSource.getData(JdbcDataSource.java:283) at org.apache.solr.handler.dataimport.JdbcDataSource.getData(JdbcDataSource.java:52) at org.apache.solr.handler.dataimport.SqlEntityProcessor.initQuery(SqlEntityProcessor.java:59) at org.apache.solr.handler.dataimport.SqlEntityProcessor.nextRow(SqlEntityProcessor.java:73) at org.apache.solr.handler.dataimport.EntityProcessorWrapper.nextRow(EntityProcessorWrapper.java:244) at org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:475) at org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:516) at org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:414) ... 6 more Caused by: java.sql.SQLSyntaxErrorException: ORA-00936: missing expression at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:450) at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:399) at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:1059) at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:522) at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:257) at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:587) at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:210) at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:30) at oracle.jdbc.driver.T4CStatement.executeForDescribe(T4CStatement.java:762) at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:925) at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1111) at oracle.jdbc.driver.OracleStatement.executeInternal(OracleStatement.java:1792) at oracle.jdbc.driver.OracleStatement.execute(OracleStatement.java:1745) at oracle.jdbc.driver.OracleStatementWrapper.execute(OracleStatementWrapper.java:334) at org.apache.solr.handler.dataimport.JdbcDataSource$ResultSetIterator.executeStatement(JdbcDataSource.java:349) at org.apache.solr.handler.dataimport.JdbcDataSource$ResultSetIterator.<init>(JdbcDataSource.java:321) ... 15 more -- View this message in context: http://lucene.472066.n3.nabble.com/DIH-do-not-work-Child-entity-cannot-refer-parent-s-id-tp4315023.html Sent from the Solr - User mailing list archive at Nabble.com.