GORM: Query
Penjelasan
GORM memakai method chaining untuk query, mirip query builder framework lain: db.Where(), db.Order(), diakhiri Find() (ambil banyak, hasil ke slice) atau First() (ambil satu). Hasil query dan error-nya diambil lewat pointer/variabel yang dilewatkan sebagai argumen.
Contoh Konsep
var produkMahal []Produk
db.Where("harga > ?", 50000).Order("harga desc").Find(&produkMahal)
var produk Produk
db.Where("nama LIKE ?", "%Kaos%").First(&produk)
var jumlahHabis int64
db.Model(&Produk{}).Where("stok = ?", 0).Count(&jumlahHabis)
Praktikum
Tulis query GORM yang mengambil semua Artikel yang Judul-nya mengandung kata "Echo" (LIKE), diurutkan dari yang terbaru (Order("created_at desc")), hasilnya ditampung ke slice []Artikel.
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
GORM SELALU memakai placeholder ? untuk nilai di klausa Where (mis. "harga > ?", 50000), BUKAN string concatenation langsung — ini mencegah SQL injection secara otomatis, sama prinsipnya dengan prepared statement di database/sql standar Go.