JPA @Column
Anotasi
The nullable
atribut dari @Column
penjelasan memiliki dua tujuan:
- ini digunakan oleh alat pembuat skema
- itu digunakan oleh Hibernate selama membilas Konteks Persistence
Alat Pembuatan Skema
Alat pembuatan skema HBM2DDL menerjemahkan @Column(nullable = false)
atribut entitas ke NOT NULL
kendala untuk kolom tabel terkait saat membuat CREATE TABLE
pernyataan.
Seperti yang saya jelaskan dalam Panduan Pengguna Hibernate , lebih baik menggunakan alat seperti Flyway daripada mengandalkan mekanisme HBM2DDL untuk menghasilkan skema database.
Persistensi Konteks Flush
Saat membilas Konteks Kegigihan, Hibernate ORM juga menggunakan @Column(nullable = false)
atribut entitas:
new Nullability( session ).checkNullability( values, persister, true );
Jika validasi gagal, Hibernate akan melempar a PropertyValueException
, dan mencegah pernyataan INSERT atau UPDATE untuk dieksekusi dengan perlu:
if ( !nullability[i] && value == null ) {
//check basic level one nullablilty
throw new PropertyValueException(
"not-null property references a null or transient value",
persister.getEntityName(),
persister.getPropertyNames()[i]
);
}
Untuk detail lebih lanjut tentang cara kerja mekanisme siram Hibernate, lihat artikel ini .
@NotNull
Anotasi Validasi Bean
The @NotNull
penjelasan didefinisikan oleh Bean Validasi dan, seperti Hibernate ORM yang paling populer implementasi JPA, yang paling populer pelaksanaan Bean Validasi adalah Hibernate Validator kerangka.
Saat menggunakan Hibernate Validator bersama dengan Hibernate ORM, Hibernate Validator akan melempar ConstraintViolation
ketika memvalidasi entitas.