Saya punya kacang Jawa. Sekarang, saya ingin memastikan bahwa bidangnya harus unik.
Saya menggunakan kode berikut:
@UniqueConstraint(columnNames={"username"})
public String username;
Tapi saya mendapatkan beberapa kesalahan:
@UniqueConstraint is dissallowed for this location
Apa cara yang tepat untuk menggunakan batasan unik?
Catatan: Saya menggunakan kerangka kerja play.
Jawaban:
Untuk memastikan nilai bidang unik, Anda dapat menulis
Anotasi @UniqueConstraint adalah untuk membubuhi keterangan beberapa kunci unik di tingkat tabel, itulah sebabnya Anda mendapatkan kesalahan saat menerapkannya ke bidang.
Referensi (JPA TopLink):
sumber
Anda dapat menggunakan di tingkat kelas dengan sintaks berikut
sumber
Saya saat ini menggunakan kerangka bermain juga dengan hibernate dan JPA 2.0 annotation dan model ini berfungsi tanpa masalah
Semoga ini bisa membantu.
sumber
Catatan: Di Kotlin sintaks untuk mendeklarasikan array dalam penggunaan anotasi
arrayOf(...)
bukan{...}
Catatan: Pada Kotlin 1.2, dimungkinkan untuk menggunakan
[...]
sintaks sehingga kode menjadi lebih sederhanasumber
Way1:
- Di sini baik Column1 dan Column2 bertindak sebagai batasan unik secara terpisah. Mis: jika suatu saat nilai dari nilai kolom1 atau kolom2 cocok maka Anda akan mendapatkan Kesalahan UNIQUE_CONSTRAINT.
Way2:
- Di sini nilai gabungan kedua kolom1 dan kolom2 bertindak sebagai batasan unik
sumber
Batasan unik hanya digunakan untuk membuat kunci komposit, yang akan menjadi unik. Ini akan mewakili tabel sebagai kunci utama digabungkan sebagai unik.
sumber
Anda bisa menggunakan @UniqueConstraint di tingkat kelas, untuk kunci utama gabungan dalam sebuah tabel. sebagai contoh:
ProductAttribute kelas publik {}
sumber
Anotasi unik harus ditempatkan tepat di atas pernyataan atribut. UniqueContraints masuk ke anotasi @Tabel di atas deklarasi kelas data. Lihat di bawah:
sumber