當我定義諸如域對象:如何讓Grails/GORM在postgres中使用默認序列值?
class MusicPlayed {
String user
Date date = new Date()
String mood
static mapping = {
id name: 'played_id'
version false
}
}
我得到一個Postgres順序自動定義如下:
CREATE SEQUENCE seq_music_played
INCREMENT 1
MINVALUE 1
MAXVALUE 9223372036854775807
START 1
CACHE 1;
這是偉大的 - 但我很想有這個成爲默認值我的id
字段。換句話說,我希望將表格定義爲:
played_id bigint DEFAULT nextval('seq_music_played'::regclass) NOT NULL,
...但是這不會發生。因此,當我的客戶端代碼需要手動SQL調用時,我就不能從順序中拉取新值,而不僅僅依賴於自動填充。
有沒有什麼辦法可以按照我想要的方式創建此表,還是我需要放棄gorm的表創建魔法,並且只需使用在安裝時運行的db創建腳本自己創建表,時間?
注意我的問題是類似How to set up an insert to a grails created file with next sequence number?,但我專門找不污染我的客戶端代碼的解決方案。
這沒有考慮到他的序列名'seq_music_played' – boecko