Sebuah daftar, jika tidak ada kolom indeks yang ditentukan, hanya akan ditangani sebagai tas oleh Hibernate (tidak ada pemesanan khusus).
Satu perbedaan penting dalam penanganan Hibernate adalah Anda tidak dapat mengambil dua daftar berbeda dalam satu kueri. Misalnya, jika Anda memiliki Person
entitas yang memiliki daftar kontak dan daftar alamat, Anda tidak akan dapat menggunakan satu kueri untuk memuat orang dengan semua kontak dan semua alamatnya. Solusi dalam kasus ini adalah membuat dua kueri (yang menghindari produk kartesius), atau menggunakan a Set
alih - alih a List
untuk setidaknya salah satu koleksi.
Seringkali sulit untuk menggunakan Set dengan Hibernate ketika Anda harus menentukan equals
dan hashCode
pada entitas dan tidak memiliki kunci fungsional yang tidak dapat diubah dalam entitas.