如何使用DatabaseInformation、TableInformation和ColumnInformation来确定hibernate5中的列大小?

如何使用DatabaseInformation、TableInformation和ColumnInformation来确定hibernate5中的列大小?,hibernate,Hibernate,我们计划从hibernate3升级到hibernate5.4.4 有以下函数来确定列大小 public int getColumnLength(字符串类名称、字符串属性名称)引发AMSCheckedException{ int列大小 try { LocalSessionFactoryBean sessionFactoryBean = (LocalSessionFactoryBean) appContext.getBean("&sessionFactory");

我们计划从hibernate3升级到hibernate5.4.4

有以下函数来确定列大小

public int getColumnLength(字符串类名称、字符串属性名称)引发AMSCheckedException{ int列大小

    try {
        LocalSessionFactoryBean sessionFactoryBean = (LocalSessionFactoryBean) appContext.getBean("&sessionFactory");
        SessionFactoryImpl sessionFactory = (SessionFactoryImpl) appContext.getBean("sessionFactory");


        Metadata metadata = sessionFactoryBean.getMetadataSources().getMetadataBuilder().build();


        PersistentClass pc = sessionFactoryBean.getConfiguration().getClassMapping(className);
        Table t = pc.getTable();
        Column c = t.getColumn(new Column(propertyName));
        Connection connection = sessionFactory.getConnectionProvider().getConnection();



        DatabaseMetadata databaseMetadata = new DatabaseMetadata(connection, sessionFactory.getDialect());

        TableMetadata tableMetadata = databaseMetadata.getTableMetadata(t.getName(), sessionFactory.getSettings().getDefaultSchemaName(),
                                                                        sessionFactory.getSettings().getDefaultCatalogName(), false);

        columnSize = tableMetadata.getColumnMetadata(c.getName()).getColumnSize();

        if (connection != null && !connection.isClosed())
            connection.close();

    } catch (Exception e) {
        logger.error("Exception caught when trying to get column size of " + className + " and property " + propertyName, e);
        throw new AMSCheckedException(AMSExceptionEnum.GENERIC_DB_ACCESS_ERROR, e);
    }

    return columnSize;
}
该函数当前使用DatabaseMetadata、tableMetaData类。但是在hibernate5中删除了DatabaseMetadata,并且不推荐使用tableMetaData 据我所知,在hibernate5中,有DatabaseInformation、TableInformation和ColumnInformation类来获取列大小 但是,我还没有找到任何使用这些类的具体示例。
我在寻找具体的例子。你能提供一个例子吗。

实例化

org.hibernate.tool.schema.extract.internal.DatabaseInformationImpl


您可以找到的其他信息

实例化

org.hibernate.tool.schema.extract.internal.DatabaseInformationImpl

您可以找到的其他信息