TABLE_SCHEM与DatabaseMetaData.getConnection()。getSchema()?

时间:2016-07-12 09:15:40

标签: java oracle hibernate jdbc

在wildfly应用服务器中更改数据库模式后,hibernate从旧数据源检索现有表,但在新数据源中创建新表。

我发布了一些hibernate源代码。注意在org.hibernate.tool.hbm2ddl.TableMetadata类构造函数参数中显示不一致的行为。

TableMetadata(ResultSet rs, DatabaseMetaData meta, boolean extras) throws SQLException {
    this.catalog = rs.getString("TABLE_CAT");
    this.schema = rs.getString("TABLE_SCHEM");
    this.name = rs.getString("TABLE_NAME");
    this.initColumns(meta);
    if(extras) {
        this.initForeignKeys(meta);
        this.initIndexes(meta);
    }

    String cat = this.catalog == null?"":this.catalog + '.';
    String schem = this.schema == null?"":this.schema + '.';
    LOG.tableFound(cat + schem + this.name);
    LOG.columns(this.columns.keySet());
    if(extras) {
        LOG.foreignKeys(this.foreignKeys.keySet());
        LOG.indexes(this.indexes.keySet());
    }

}

为什么 rs.getString(“TABLE_SCHEM”) meta.getConnection.getSchema()提供不同的表模式。
以及hibernate如何在没有用户名和密码信息的情况下访问我的旧架构?

怎么可能呢?

0 个答案:

没有答案