Il official documentation per GORM dimostra un modo in cui si può verificare l'esistenza di un record, vale a dire:Come posso verificare gli errori nelle operazioni CRUD usando GORM?
user := User{Name: "Jinzhu", Age: 18, Birthday: time.Now()}
// returns true if record hasn’t been saved (primary key `Id` is blank)
db.NewRecord(user) // => true
db.Create(&user)
// will return false after `user` created
db.NewRecord(user) // => false
Questo può essere usato per testare indirettamente per errori nella creazione di record, ma i rapporti alcuna informazione utile in caso di un fallimento.
aver controllato la source code for db.Create
, sembra che ci sia una sorta di ispezione dello stack frame che verifica la presenza di errori prima di procedere, il che significa che gli errori transazionali falliranno in silenzio:
func Create(scope *Scope) {
defer scope.Trace(NowFunc())
if !scope.HasError() {
// actually perform the transaction
}
}
- È questo un bug, o mi sto perdendo qualcosa?
- Come posso/devo essere informato di una transazione fallita?
- Dove posso ottenere utili informazioni di debug?
non dice che non appartiene qui, ma hai provato a fare questa domanda in un github di questa Gorm? –