3df9d9505209edfb70e9e483e47433039cea3674
[JavaForFun] /
1 package de.spring.example.persistence.domain.audit;
2
3 import java.time.LocalDateTime;
4 import java.util.Date;
5
6 import javax.persistence.Column;
7 import javax.persistence.Entity;
8 import javax.persistence.GeneratedValue;
9 import javax.persistence.GenerationType;
10 import javax.persistence.Id;
11 import javax.persistence.Table;
12 import javax.persistence.Temporal;
13 import javax.persistence.TemporalType;
14
15 /** import org.hibernate.envers.DefaultRevisionEntity; **/
16 import org.hibernate.envers.RevisionEntity;
17 import org.hibernate.envers.RevisionNumber;
18 import org.hibernate.envers.RevisionTimestamp;
19
20 @Entity
21 @RevisionEntity(MyCustomRevisionListener.class)
22 @Table(name="CUSTOM_REVISION", schema="mybatis_example")
23 public class MyCustomRevision /** extends DefaultRevisionEntity **/ {
24         
25         @Id
26         @GeneratedValue(strategy=GenerationType.IDENTITY)
27         @Column(name="ID", updatable=false, nullable=false)
28         @RevisionNumber
29         private Long id;
30         
31         @Column(name="REVISION_DATE")
32         @Temporal(TemporalType.TIMESTAMP)
33         @RevisionTimestamp
34         private Date revisionDate;
35         
36         @Column(name="USERNAME")
37         private String username;
38         
39         // It will be used by JPA when filling the property fields with data coming from data base.
40         protected MyCustomRevision() {
41                 
42         }
43         
44         // It will be used by my code (for example by Unit Tests)
45         public MyCustomRevision(String username) {
46                 this.username = username;
47         }
48
49         /**
50          * WARNING: JPA REQUIRES GETTERS!!!
51          */
52         
53         public Long getId() {
54                 return id;
55         }
56         
57     public Date getRevisionDate() {
58         return revisionDate;
59     }
60         
61     public String getUsername() {
62         return username;
63     }
64     
65     public void setUsername(String username) {
66         this.username = username;
67     }
68 }