fix: assciasions update
This commit is contained in:
@@ -4,7 +4,9 @@ import (
|
||||
"app/internal/dal"
|
||||
"gorm.io/driver/sqlite"
|
||||
"gorm.io/gorm"
|
||||
"gorm.io/gorm/logger"
|
||||
"log"
|
||||
"os"
|
||||
"sync"
|
||||
"time"
|
||||
)
|
||||
@@ -18,7 +20,19 @@ const Path = "database.db"
|
||||
|
||||
func initialize() error {
|
||||
var err error
|
||||
db, err = gorm.Open(sqlite.Open("file:"+Path+"?_fk=1"), &gorm.Config{})
|
||||
newLogger := logger.New(
|
||||
log.New(os.Stdout, "\r\n", log.LstdFlags), // io writer
|
||||
logger.Config{
|
||||
SlowThreshold: time.Second, // Slow SQL threshold
|
||||
LogLevel: logger.Info, // Log level
|
||||
IgnoreRecordNotFoundError: false, // Ignore ErrRecordNotFound error for logger
|
||||
ParameterizedQueries: false, // Don't include params in the SQL log
|
||||
Colorful: true, // Disable color
|
||||
},
|
||||
)
|
||||
db, err = gorm.Open(sqlite.Open("file:"+Path+"?_fk=1"), &gorm.Config{
|
||||
Logger: newLogger,
|
||||
})
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -9,12 +9,12 @@ type Post struct {
|
||||
Text string `displayName:"Текст" ui:"label:Текст"`
|
||||
Deadline int64 `ui:"label:Дедлайн;datatype:datetime;"`
|
||||
CreatedAt int64 `gorm:"autoCreateTime" ui:"readonly;datatype:datetime;"`
|
||||
AuthorId uint `ui:"hidden"`
|
||||
AuthorId uint `ui:"hidden" gorm:"foreignKey:Id;references:AuthorId;constraint:OnUpdate:CASCADE,OnDelete:CASCADE;"`
|
||||
Author Author `ui:"label:Автор; field:Name;"`
|
||||
}
|
||||
|
||||
type Author struct {
|
||||
Id uint `gorm:"primaryKey" ui:"hidden"`
|
||||
Name string `ui:"label:Имя;"`
|
||||
Posts []Post `ui:"label:Посты; field:Text;"`
|
||||
}
|
||||
Posts []Post `ui:"label:Посты; field:Text;" gorm:"constraint:OnUpdate:CASCADE,OnDelete:CASCADE;"`
|
||||
}
|
||||
|
||||
@@ -33,7 +33,12 @@ func (service *AuthorService) GetById(id uint) (*Author, error) {
|
||||
return item, nil
|
||||
}
|
||||
func (service *AuthorService) Update(item Author) (Author, error) {
|
||||
err := dal.Author.Preload(field.Associations).Save(&item)
|
||||
var posts []*models.Post
|
||||
for _, post := range item.Posts {
|
||||
posts = append(posts, &post)
|
||||
}
|
||||
err := dal.Author.Posts.Model(&item).Replace(posts...)
|
||||
_ = dal.Author.Save(&item)
|
||||
return item, err
|
||||
}
|
||||
func (service *AuthorService) Delete(id uint) error {
|
||||
|
||||
Reference in New Issue
Block a user