【发布时间】:2014-04-27 18:28:57
【问题描述】:
我正在使用 Hibernate 和 Postgresql 来做一个演示项目。但我现在得到奇怪的例外。 我有 2 个简单的表,其中一个被另一个引用。这是创建语句:
CREATE TABLE minishopping_schema.Category (
id SERIAL PRIMARY KEY,
name VARCHAR(20) NOT NULL UNIQUE,
descrip TEXT NOT NULL,
products INT NOT NULL DEFAULT 0
);
CREATE TABLE minishopping_schema.Product (
id SERIAL PRIMARY KEY,
name VARCHAR(20) NOT NULL,
SKU TEXT NOT NULL UNIQUE,
cid INT REFERENCES minishopping_schema.Category (id) NOT NULL,
price MONEY NOT NULL
)
当我尝试在收到的 Product 表中插入一条记录时
Hibernate: insert into minishopping_schema.product (cid, name, sku, price) values (?, ?, ?, ?)
org.hibernate.exception.SQLGrammarException: could not insert: [DBModel.Product]
Hibernate 生成了一个Product(category, name, sky, price) 的对象,我在插入之前检查了每个属性是否合法。而且我可以成功地将元组插入到 sql 编辑器中的表中。有人可以帮忙吗?
【问题讨论】:
-
您能否发布产品和类别的 Hiberate 实体类?
-
你能显示 full 异常吗?在 Hibernate 异常的堆栈跟踪中的某处必须有一些 Postgres 异常(包括 real 错误消息)
-
你可能需要一个可延迟的外键。
标签: java sql hibernate postgresql