【问题标题】:SQLGrammarException using Hibernate with Postgresql使用 Hibernate 和 Postgresql 的 SQLGrammarException
【发布时间】: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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-06
    • 1970-01-01
    • 1970-01-01
    • 2020-09-08
    相关资源
    最近更新 更多