是否可以从休眠中检索db列长度?
Property property = (Property)persistentClass.getProperty(propertyName);
((Column)property.getColumnIterator().next()).getLength();
System.out.print(persister.getPropertyColumnNames(propertyName)[0]);
重试Entity类对象长度,而不是db列长度。
答案 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