簡體   English   中英

hibernate hsqldb標識列無法插入新字段

[英]hibernate hsqldb identity column fails to insert new fields

我正在使用HSQL數據庫來測試Spring Hibernate項目,並且最近引入了一個Identity字段。

java類看起來像(片段):

@Entity
@Table(name = "my_table")
public class MyTable {

    @Column(name = "sequence_number")
    @Id
    @GeneratedValue
    private Long sequenceNumber;

}

我的生成表的SQL腳本如下(代碼段)所示:

CREATE TABLE my_table (
    "sequence_number" BIGINT GENERATED BY DEFAULT AS IDENTITY,
    PRIMARY KEY("sequence_number")
);

當我嘗試將值添加到日期庫時,sql(通過show_sql)為:

insert into my_table (sequence_number) values (default)

我得到了exeption堆棧跟蹤,並將其作為關鍵指標:

org.hibernate.exception.SQLGrammarException: could not prepare statement
Caused by: org.hsqldb.HsqlException: user lacks privilege or object not found: SEQUENCE_NUMBER

我的懷疑是HSQLDB不喜歡default SQL關鍵字,而是希望看到null 反正有通過休眠進入此行為?

否則,是否有辦法使此代碼正常工作?

我正在使用hibernate 4.2.8和HSQLDb 2.3.2。

問題是sql中的引號。 這使得hsqldb中的列名區分大小寫。 休眠嘗試使用ALL-CAPS查找名稱。

在以下位置更改ddl:

CREATE TABLE my_table (
    sequence_number BIGINT GENERATED BY DEFAULT AS IDENTITY,
    PRIMARY KEY(sequence_number) );

解決了這個問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM