PostgreSQL错误,类型Java_Object不存在

时间:2014-09-15 08:15:26

标签: java hibernate postgresql jpa hibernate-mapping

我正在使用PostgreSQL和SQL PowerArchitect来设计物理数据模型。因为我正在使用可以直接在数据库中持久化Java对象的Hibernate,所以我想到使用Java_Object作为SQL PowerArchitect中的类型。当我执行查询时,我收到此错误。如果PostgreSQL中确实存在类型,或者我犯了一些错误,请告诉我。谷歌搜索我无法找到许多数据类型的引用。

CREATE TABLE public.Product_Info (
                productinfoid VARCHAR NOT NULL DEFAULT nextval('public.product_info_productinfoid_seq'),
                productbasic VARCHAR NOT NULL,
                Product_Tags JAVA_OBJECT,
                Product_Categories JAVA_OBJECT,
                Product_Ship_Time JAVA_OBJECT,
                CONSTRAINT productinfoid PRIMARY KEY (productinfoid, productbasic)
)

INFO  15-09 10:12:04,300 - sql statement failed: ERROR: type "java_object" does not exist

1 个答案:

答案 0 :(得分:1)

创建表时,您需要使用数据库支持的列类型,例如:CHAR,VARCHAR NUMERIC,BLOB等

Hibernate处理the object type to database column type mapping

这些关系需要FK:

  • Product_Tags,
  • Product_Categories

可能是这个的DATE / TIME / TIMESTAMP:

  • Product_Ship_Time

JAVA_OBJECT用于存储Java Class对象而非Java Object实例!

检查org.hibernate.type.descriptor.sql.JdbcTypeJavaClassMappings

jdbcJavaClassMappings.put( Class.class, Types.JAVA_OBJECT );

因此,当从数据库列(例如VARCHAR)获取Class对象类型时,此类型将非常有用。