我正在使用 Hibernate ORM 框架制作一個 Spring 啟動應用程式。
我的@Entity代碼中有一個類:
@Entity
@Table(name = "thing")
public class Thing {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "thing_id")
private long id;
@Column(name = "name")
private String name;
@Column(name = "price")
private int price;
我成功地可以將 a 持久化Thing到我的資料源。而thing_id如預期的那樣產生。
但是我不能直接在資料庫管理器中插入記錄(例如 DataGrip):
insert into thing (name, price)
values ('aaa', 123);
嘗試插入時出現警告和適當的錯誤:
Following columns have no computed/default value and must be listed explicitly: thing_id
那么如何在資料庫管理器中直接插入時自動生成列值呢?
uj5u.com熱心網友回復:
如果您有一個想要自動遞增的數字列,可以選擇直接設定 columnDefinition。這樣做的好處是,即使在沒有休眠的情況下使用架構也會自動生成值。這可能會使您的代碼特定于資料庫:
@Column(columnDefinition = "serial") // postgresql
@Column(columnDefinition = "integer auto_increment") // MySQL
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/335936.html
上一篇:序列不在oracle表上的一行中
