Study
Ktor

Exposed: Query

Penjelasan

SEMUA operasi database Exposed WAJIB dibungkus blok transaction { } — di dalamnya, query ditulis lewat DSL mirip SQL: selectAll(), where { }, orderBy(), diakhiri operasi terminal seperti toList() atau firstOrNull().

Contoh Konsep

transaction {
    val produkMahal = Produk.selectAll()
        .where { Produk.harga greater 50000.0 }
        .orderBy(Produk.harga to SortOrder.DESC)
        .toList()

    val satuProduk = Produk.selectAll()
        .where { Produk.nama like "%Kaos%" }
        .firstOrNull()

    val jumlahHabis = Produk.selectAll()
        .where { Produk.stok eq 0 }
        .count()
}

Praktikum

Di dalam blok transaction { }, tulis query Exposed yang mengambil semua Artikel yang judul-nya mengandung kata "Ktor" (like), diurutkan dari yang terbaru.

Editor Latihan

Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.

Tips

Lupa membungkus operasi Exposed dalam transaction { } akan melempar exception "No transaction in context" — SEMUA akses database (read maupun write) di Exposed HARUS berada di dalam transaksi, bahkan untuk query SELECT sederhana sekalipun, beda dari kebanyakan ORM lain yang query baca biasanya tidak butuh transaksi eksplisit.