Java 使用Hibernate和Postgresql实现SQLGrammarException

Java 使用Hibernate和Postgresql实现SQLGrammarException,java,sql,hibernate,postgresql,Java,Sql,Hibernate,Postgresql,我正在使用hibernate和Postgresql做一个演示项目。但我现在有个奇怪的例外。 我有两个简单的表,其中一个被另一个引用。以下是create语句: CREATE TABLE minishopping_schema.Category ( id SERIAL PRIMARY KEY, name VARCHAR(20) NOT NULL UNIQUE, descrip TEXT NOT NULL,

我正在使用hibernate和Postgresql做一个演示项目。但我现在有个奇怪的例外。 我有两个简单的表,其中一个被另一个引用。以下是create语句:

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生成了一个
产品(类别、名称、天空、价格)
的对象,我在插入之前检查了每个属性是否合法。我可以在sql编辑器中成功地将元组插入到表中。有人能帮忙吗?

我发现了问题。Hibernate不支持类型“money”,尽管在执行Hibernate反向工程时,它将生成为double。这真的很烦人。

您能为产品和类别发布Hibrate实体类吗?您能显示完整的异常吗?Hibernate异常的stacktrace中一定有一些Postgres异常(包括真正的错误消息)。您可能需要一个可延迟的外键。