2013-06-19 7 views
0

나는이 기괴한 문제를 발견했습니다.Dataconfig - 엔티티에서 하위 엔티티의 수에 제한이 있습니까?

내 dataconfig 파일에 루트 엔티티와 15 개의 다른 하위 엔티티가 있습니다. 전체 가져 오기를 시도하면 다음 오류가 발생합니다.

오류 로그 : 내 데이터베이스에 대해 오류 로그에서 쿼리를 실행하면

Caused by: org.apache.solr.handler.dataimport.DataImportHandlerException: Unable to execute query: select fruitName from fruits  where id = '2'  Processing Document # 1 
    at org.apache.solr.handler.dataimport.DataImportHandlerException.wrapAndThrow(DataImportHandlerException.java:71) 
    at org.apache.solr.handler.dataimport.JdbcDataSource$ResultSetIterator.<init>(JdbcDataSource.java:252) 
    at org.apache.solr.handler.dataimport.JdbcDataSource.getData(JdbcDataSource.java:209) 
    at org.apache.solr.handler.dataimport.JdbcDataSource.getData(JdbcDataSource.java:38) 
    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:243) 
    at org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:472) 
    at org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:498) 
    at org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:411) 
    ... 5 more 
Caused by: java.lang.ClassNotFoundException: Unable to load null or org.apache.solr.handler.dataimport.null 
    at org.apache.solr.handler.dataimport.DocBuilder.loadClass(DocBuilder.java:899) 
    at org.apache.solr.handler.dataimport.JdbcDataSource$1.call(JdbcDataSource.java:159) 
    at org.apache.solr.handler.dataimport.JdbcDataSource$1.call(JdbcDataSource.java:127) 
    at org.apache.solr.handler.dataimport.JdbcDataSource.getConnection(JdbcDataSource.java:362) 
    at org.apache.solr.handler.dataimport.JdbcDataSource.access$200(JdbcDataSource.java:38) 
    at org.apache.solr.handler.dataimport.JdbcDataSource$ResultSetIterator.<init>(JdbcDataSource.java:239) 
    ... 13 more 
Caused by: java.lang.NullPointerException 
    at java.util.concurrent.ConcurrentHashMap.get(ConcurrentHashMap.java:768) 
    at org.apache.solr.core.SolrResourceLoader.findClass(SolrResourceLoader.java:385) 
    at org.apache.solr.handler.dataimport.DocBuilder.loadClass(DocBuilder.java:889) 
    ... 18 more 

, 나는 오류를 발견하지 말아. 엔티티 순서를 바꿔 보았습니다. 오류 로그에서 매번 마지막 엔티티의 쿼리를 찾습니다.

하지만 임의의 엔티티를 제거하면 전체 가져 오기가 성공합니다.

하위 엔티티/필드의 수에 어떤 종류의 제한이 부과 되었습니까? 클래스 "null"을로드하려고하는 이유는 무엇입니까? 내가 놓친 게 있니?

도움이 되었으면 좋겠습니다.

편집 : 내 dataconfig.xml의

레이아웃 :

<dataconfig> 
<document> 

<entity name = "outer_entity" query="select id from outerTable"> 

    <entity name = "subEntity1" query="select value1 from subEntity1"> 
    </entity> 

    <entity name = "subEntity2" query="select value2 from subEntity2"> 
    </entity> 

    .......... 

    <entity name = "subEntity14" query="select value14 from subEntity14"> 
    </entity> 

    <entity name = "subEntity15" query="select value15 from subEntity15"> 
    </entity> 

</entity> 

</document> 
</dataconfig> 
+0

쿼리가 모든 행을 반환합니까? id = '2'과일에서 fruitName을 선택하십시오. – JHS

+0

No .. 과일 테이블에 id = '2'에 대한 항목이 없으므로 반환 된 행이 없습니다. – Mavellin

+0

어떤 DB를 사용하고 있습니까? – JHS

답변

0

내가 하위 기관에 한계 건너하지 않았습니다. 그러나 엔티티를 제거하면 엔티티가 작동하기 때문에 분명하게 보입니다.

어떻게 든 쿼리에 참여하거나보기를 사용하는 것이 좋습니다.

관련 문제