Giriş
Açıklaması şöyle.
Şöyle yaparız.
Açıklaması şöyle.
You can use Envers to keep track of changes and display it to the user. Whether you use Envers or code the logic is a personal preference.Maven
Revision entities have the same properties as your actual entities, so that may not suit your needs in future.
Şöyle yaparız.
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-envers</artifactId>
<version>${hibernate.version}</version>
</dependency>
Spring için şöyle yaparız<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-envers</artifactId>
</dependency>
Örnek - SpringEnvers kullanmak için iki tane anotasyonu belirmek lazım
1. @EnableJpaAuditing
2. @EnableJpaRepositories
3. @AuditedŞöyle yaparız
@EnableJpaAuditing
@EnableJpaRepositories(repositoryFactoryBeanClass =
EnversRevisionRepositoryFactoryBean.class)
public class JpaEnversConfiguration {}
Eğer Envers düzgün çalışıyorsa çıktı olarak şunu görürüz
Envers integration enabled ? : true
Veri tabanına yeni kayıt eklersek audit tablosunda değişiklik görmek gerekir
Veri tabanı Tabloları
Envers için kullanılacak veri tabanı tablolarını yaratmak için iki seçenek var.
1. Hibernate'in yaratması. Şöyle yaparız
hibernate.ddl-auto = update
2. Elle yaratmak
revinfo tablosu yaratmak gerekir. Şöyle yaparız
CREATE TABLE revinfo ( rev integer NOT NULL, revtstmp bigint, CONSTRAINT revinfo_pkey PRIMARY KEY (rev) )
Her entity için audit tablosu yaratmak gerekir. Şöyle yaparız
CREATE TABLE student_aud ( id bigint NOT NULL, rev integer NOT NULL, revtype smallint, studentName character varying(255), CONSTRAINT student_aud_pkey PRIMARY KEY (id, rev), CONSTRAINT student_aud_revinfo FOREIGN KEY (rev) REFERENCES revinfo (rev) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION )
Açıklaması şöyle
When creating a audit table for above entity, hibernate adds the “_AUD” suffix to the table name of the audited entity.
Audit tablosunda fazladan iki sütun vardır. Açıklaması şöyle
Audit table must contain the primary key of the original entity, all audited fields, the revision number and the revision type.
Hiç yorum yok:
Yorum Gönder