簡體   English   中英

schemacrawler java.lang.NullPointerException:無法檢索目錄

[英]schemacrawler java.lang.NullPointerException: Catalog could not be retrieved

我嘗試將 schemacrawler 與 hsqldb 2.51 和 h2 2.x 一起使用,代碼如下:

final LimitOptionsBuilder limit = LimitOptionsBuilder.builder()
    .includeSchemas(new IncludeAll())
    .includeTables(new IncludeAll());
final LoadOptionsBuilder load = LoadOptionsBuilder.builder()
    .withSchemaInfoLevel(SchemaInfoLevelBuilder.minimum());
final SchemaCrawlerOptions options = SchemaCrawlerOptionsBuilder.newSchemaCrawlerOptions()
    .withLimitOptions(limit.toOptions())
    .withLoadOptions(load.toOptions());
final Catalog catalog = SchemaCrawlerUtility.getCatalog(connection, options);
// throw NullPointerException
for (final schemacrawler.schema.Table t : catalog.getTables())
{
    //more code...
}

如果沒有 NullPointerException 錯誤,我將無法獲取目錄。 我在類路徑中有兩個檔案:

  • schemacrawler-16.16.11.jar
  • schemacrawler-hsqldb-16.16.11.jar

如果有人有想法...

在更改了一些代碼后,我設法得到了一些有用的東西......

new LoggingConfig(Level.ALL);
final LimitOptionsBuilder limit = LimitOptionsBuilder.builder()
    .includeSchemas(new IncludeAll())
    .includeTables(new IncludeAll());
final LoadOptionsBuilder load = LoadOptionsBuilder.builder()
    .withSchemaInfoLevel(SchemaInfoLevelBuilder.minimum());
final SchemaCrawlerOptions options = SchemaCrawlerOptionsBuilder.newSchemaCrawlerOptions()
    .withLimitOptions(limit.toOptions())
    .withLoadOptions(load.toOptions()); 
final SchemaRetrievalOptions retrieval = SchemaCrawlerUtility.matchSchemaRetrievalOptions(connection);
schemacrawler.crawl.SchemaCrawler crawler = new schemacrawler.crawl.SchemaCrawler(connection, retrieval, options);
final Catalog catalog = crawler.crawl();
for (final schemacrawler.schema.Table t : catalog.getTables())
    {
        //more code...
    }

但是,第一個代碼總是給我同樣的錯誤......

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM