Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Hibernate查找给定Java类型的特定数据库类型_Java_Database_Hibernate - Fatal编程技术网

使用Hibernate查找给定Java类型的特定数据库类型

使用Hibernate查找给定Java类型的特定数据库类型,java,database,hibernate,Java,Database,Hibernate,是否有一个类可以在Hibernate中使用,以便传入一个类并返回相应的数据库类型名称 比如说, String type = HibernateTypeGod.getTypeName(String.class); Hibernate将确定我指定的方言,并在Oracle的情况下返回VARCHAR2。这并不容易。所有映射内容都在类配置、表、列和方言中,因此您需要某种有效的配置来从Hibernate查询这些内容。但您可以使用以下示例: String s = myDialect.getTypeName(

是否有一个类可以在Hibernate中使用,以便传入一个类并返回相应的数据库类型名称

比如说,

String type = HibernateTypeGod.getTypeName(String.class);

Hibernate将确定我指定的方言,并在Oracle的情况下返回VARCHAR2。

这并不容易。所有映射内容都在类配置、表、列和方言中,因此您需要某种有效的配置来从Hibernate查询这些内容。但您可以使用以下示例:

String s = myDialect.getTypeName(sqlType,length,precision,scale);

当然,您需要查找方言和sqlType,但这在Hibernate中并不是以类为基础固定的,但无论如何都可以按列进行配置,那么按类而不是按列名提问的原因是什么呢?

我正计划使用它在我的应用程序中动态创建表。因此,用户可能会说我想创建一个表,其中包含一个名为“foo”的列,该列将包含字符串。。。您更了解如何自己处理自定义类型,并且不需要Hibernate函数。请原谅我的无知,但可以推断如何处理?如何轻松确定特定数据库的正确数据类型?用户可以使用他们想要的任何数据库。因此,用户可以使用他想要的任何映射,或者您是否提供映射文件?在本例中,将我提到的函数用于基本数据类型,并为自己创建@ManyToOnes。也许您想使用Hibernates schema update函数来创建用户定义的表?没有与我的问题相关的映射文件。用户使用UI并指定表的名称和列的类型。然后,他们将点击OK,然后神奇地创建具有适当列和数据类型的表。