我正在使用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
答案 0 :(得分:1)
创建表时,您需要使用数据库支持的列类型,例如:CHAR,VARCHAR NUMERIC,BLOB等
Hibernate处理the object type to database column type mapping。
这些关系需要FK:
可能是这个的DATE / TIME / TIMESTAMP:
JAVA_OBJECT
用于存储Java Class
对象而非Java Object
实例!
检查org.hibernate.type.descriptor.sql.JdbcTypeJavaClassMappings:
jdbcJavaClassMappings.put( Class.class, Types.JAVA_OBJECT );
因此,当从数据库列(例如VARCHAR)获取Class对象类型时,此类型将非常有用。