package main
import (
"fmt"
"gorm.io/driver/sqlite"
"gorm.io/gorm"
)
type User struct {
ID uint
Name string
Age int
}
type Email struct {
ID uint
UserID uint
Email string
}
func main() {
db, err := gorm.Open(sqlite.Open("example.db"), &gorm.Config{})
if err != nil {
panic("failed to connect database")
}
// Auto Migrate
db.AutoMigrate(&User{}, &Email{})
// Create
user := User{Name: "John", Age: 25}
result := db.Create(&user)
fmt.Println(result.RowsAffected)
// One-to-One relation
email := Email{UserID: user.ID, Email: "[email protected]"}
db.Create(&email)
// Read
var readUser User
db.First(&readUser, user.ID)
var readEmail Email
db.Model(&readUser).Association("Email").Find(&readEmail)
fmt.Println(readUser)
fmt.Println(readEmail)
}