在我們的舊架構中,我們使用了這樣的 id:/** * Model for each database-object */public abstract class AbstractDbBase { @Getter @Setter @Id @GeneratedValue(generator = "increment") @GenericGenerator(name = "increment", strategy = "increment") @Column(nullable = false, unique = true, updatable = false) private Long id;}但是我們在更改 Hibernate 之外的值時遇到了一些問題。所以我們決定使用bigserialfrom postgres。我們更改了數(shù)據(jù)庫并為每個表添加了一個序列并將其設置為主鍵。我們有很多實體,并且所有實體都使用AbstractDbBase. 而 inAbstractDbBase是 id 的定義。但是現(xiàn)在我們無法設置 Hibernate 以正確使用該序列。我們嘗試了以下策略(對于@GeneratedValue()-annotation):GenerationType.IDENTITY:在休眠狀態(tài)下創(chuàng)建記錄時拋出異常(無法訪問序列)。GenerationType.SEQUENCE: 拋出驗證異常(未找到序列)。GenerationType.AUTO: 拋出驗證異常(未找到序列)。我的問題是:我們如何告訴 Hibernate 使用正確的序列?(沒有為每個實體寫明確的序列名稱)
1 回答

HUX布斯
TA貢獻1876條經(jīng)驗 獲得超6個贊
我發(fā)現(xiàn)了這一點:休眠無法獲得下一個序列值
所以我必須使用GenerationType.IDENTITY
. 現(xiàn)在我必須解決“沒有序列許可”的問題。我已經(jīng)完成了這個問題:錯誤:使用 Postgres 拒絕序列城市 id_seq 的權限
它現(xiàn)在有效。
添加回答
舉報
0/150
提交
取消