Skip to content

M08 · Bab 1± 50 menitDraf AI

JPA dan Entity

Tujuan belajar

  • Membedakan JPA, Hibernate 7, dan Spring Data JPA, lalu menghubungkan Spring Boot ke PostgreSQL
  • Memetakan class ke tabel dengan @Entity, @Table, @Id, @GeneratedValue, @Column, dan @Enumerated
  • Menjelaskan persistence context, dirty checking, dan lifecycle transient → managed → detached
  • Menulis equals/hashCode entity yang aman untuk HashSet dan proxy
  • Memahami kenapa ddl-auto hanya untuk belajar dan kenapa record tidak cocok sebagai entity

Prasyarat: Proyek Mini: REST API Katalog

Kuis

5 soal · lulus bila minimal 70% benar

1.Di dalam satu transaksi, kode ini dijalankan: Product a = em.find(Product.class, 1L); Product b = em.find(Product.class, 1L); System.out.println(a == b); Apa yang terjadi?
2.Method changePrice bertanda @Transactional hanya memanggil em.find(...) lalu product.changePrice(newPrice), tanpa save atau merge. Rekan kerjamu heran harga di database ikut berubah. Kenapa?
3.Enum OrderStatus { NEW, PAID, SHIPPED } dipetakan dengan @Enumerated tanpa argumen. Lalu seseorang menambah CANCELLED di antara NEW dan PAID. Pesanan lama yang tadinya PAID sekarang terbaca CANCELLED. Apa akar masalahnya?
4.Kenapa record tidak cocok dijadikan entity JPA?
5.Entity Product memakai hashCode() berbasis id. Sebuah Product baru dimasukkan ke HashSet, lalu di-persist sehingga id terisi. Setelah itu set.contains(product) mengembalikan false. Kenapa?

Jawab semua soal dulu (0/5)