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