[英]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.