休眠时的列长度

时间:2016-03-14 19:59:05

标签: database hibernate

是否可以从休眠中检索db列长度?

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


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

重试Entity类对象长度,而不是db列长度。

1 个答案:

答案 0 :(得分:0)

不是直接来自Hibernate,而是间接使用数据库供应商特定的本机查询。对于Oracle,您可以查询表all_tab_columns:

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似乎有类似的功能: http://geekswithblogs.net/AskPaula/archive/2008/07/31/124161.aspx

相关问题