gpt4 book ai didi

java - 从 hibernate 中检索数据库列长度?

转载 作者:搜寻专家 更新时间:2023-10-30 23:40:07 24 4
gpt4 key购买 nike

从 hibernate 中检索 Db 列长度。我用过:

Property property = (Property)persistentClass.getProperty(propertyName);

Column col = (Column)property.getColumnIterator().next();

int length = col.getLength();

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



System.out.print("\t Column length :::");
System.out.print(length);

我的表结构是:

TYPE_ID          NUMBER                            
TYPE_NAME VARCHAR2(200)
CREATION_DATE DATE
CREATED_BY VARCHAR2(200) Y
LAST_UPDATE_DATE DATE Y
LAST_UPDATED_BY VARCHAR2(200) Y
DISPLAY_NAME VARCHAR2(200) Y
ENABLED VARCHAR2(1) Y
DESCRIPTION VARCHAR2(4000) Y

我使用 hibernate 得到的结果是:

CREATED_BY        Column length :::255  STRING
CREATION_DATE Column length :::255 TIMESTAMP
DESCRIPTION Column length :::255 STRING
DISPLAY_NAME Column length :::200 STRING
ENABLED Column length :::255 STRING
LAST_UPDATED_BY Column length :::255 STRING
LAST_UPDATE_DATE Column length :::255 TIMESTAMP
TYPE_NAME Column length :::200 STRING

请指教..

最佳答案

通常,Hibernate 不关心底层数据库的样子,只要在 jdbc 级别上一切正常即可。

获取所需信息的最安全方法是直接查询 Oracle 字典:

select COLUMN_NAME, DATA_LENGTH from USER_TAB_COLS where table_name = '<TABLE>';

您可以将此作为 native 查询执行,或者您可以将(可能是 @Immutable)实体映射到 USER_TAB_COLS 表以利用 JPQL/HQL 和 EntityManager / session API。

关于java - 从 hibernate 中检索数据库列长度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36013070/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com