diff --git a/daos/base.go b/daos/base.go index 68bbe3dc..f530c3ce 100644 --- a/daos/base.go +++ b/daos/base.go @@ -205,7 +205,10 @@ func (dao *Dao) Delete(m models.Model) error { }) } -// Save upserts (update or create if primary key is not set) the provided model. +// Save persists the provided model in the database. +// +// If m.IsNew() is true, the method will perform a create, otherwise an update. +// To explicitly mark a model for update you can use m.MarkAsNotNew(). func (dao *Dao) Save(m models.Model) error { if m.IsNew() { return dao.lockRetry(func(retryDao *Dao) error { diff --git a/daos/collection.go b/daos/collection.go index a56ac1b6..56527c29 100644 --- a/daos/collection.go +++ b/daos/collection.go @@ -159,8 +159,11 @@ func (dao *Dao) DeleteCollection(collection *models.Collection) error { }) } -// SaveCollection upserts the provided Collection model and updates +// SaveCollection persists the provided Collection model and updates // its related records table schema. +// +// If collecction.IsNew() is true, the method will perform a create, otherwise an update. +// To explicitly mark a collection for update you can use collecction.MarkAsNotNew(). func (dao *Dao) SaveCollection(collection *models.Collection) error { var oldCollection *models.Collection diff --git a/daos/record.go b/daos/record.go index 4957ce28..cd2e2850 100644 --- a/daos/record.go +++ b/daos/record.go @@ -386,7 +386,10 @@ func (dao *Dao) SuggestUniqueAuthRecordUsername( return username } -// SaveRecord upserts the provided Record model. +// SaveRecord persists the provided Record model in the database. +// +// If record.IsNew() is true, the method will perform a create, otherwise an update. +// To explicitly mark a record for update you can use record.MarkAsNotNew(). func (dao *Dao) SaveRecord(record *models.Record) error { if record.Collection().IsAuth() { if record.Username() == "" {