Database hibernate中的列长度

Database hibernate中的列长度,database,hibernate,Database,Hibernate,是否可以从hibernate检索db列长度 Property property = (Property)persistentClass.getProperty(propertyName); ((Column)property.getColumnIterator().next()).getLength(); System.out.print(persister.getPropertyColumnNames(propertyName

是否可以从hibernate检索db列长度

Property property = (Property)persistentClass.getProperty(propertyName);
                ((Column)property.getColumnIterator().next()).getLength();


                System.out.print(persister.getPropertyColumnNames(propertyName)[0]);

这将重试实体类对象长度,而不是db列长度。

不是直接从Hibernate重试,而是通过使用特定于数据库供应商的本机查询间接重试。对于Oracle,您可以查询表中的所有\u选项卡\u列:

SELECT DATA_TYPE, DATA_LENGTH 
FROM all_tab_columns 
where owner = 'SCHEMA_OWNER' 
and TABLE_NAME = 'MY_TABLE'  
and COLUMN_NAME = 'MY_COLUMN';
这将返回如下内容:

DATA_TYPE    DATA_LENGTH
------------------------
VARCHAR2     36 
SQL Server似乎具有类似的功能:

谢谢@MirandaVeracruzDeLaHoyaCardina!但是我需要一种从hibernate获取大小的方法。您是否有任何等效的hql查询?我认为这是不可能的。