64741a617a0d36b2cf48058fe3281a79c4405679
[hibernate-maven-plugin] / src / it / tutorials-5.4.2 / envers / src / test / java / org / hibernate / tutorial / envers / Event.java
1 /*
2  * Hibernate, Relational Persistence for Idiomatic Java
3  *
4  * Copyright (c) 2010, Red Hat Inc. or third-party contributors as
5  * indicated by the @author tags or express copyright attribution
6  * statements applied by the authors.  All third-party contributions are
7  * distributed under license by Red Hat Inc.
8  *
9  * This copyrighted material is made available to anyone wishing to use, modify,
10  * copy, or redistribute it subject to the terms and conditions of the GNU
11  * Lesser General Public License, as published by the Free Software Foundation.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
15  * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
16  * for more details.
17  *
18  * You should have received a copy of the GNU Lesser General Public License
19  * along with this distribution; if not, write to:
20  * Free Software Foundation, Inc.
21  * 51 Franklin Street, Fifth Floor
22  * Boston, MA  02110-1301  USA
23  */
24 package org.hibernate.tutorial.envers;
25
26 import java.util.Date;
27 import javax.persistence.Column;
28 import javax.persistence.Entity;
29 import javax.persistence.GeneratedValue;
30 import javax.persistence.Id;
31 import javax.persistence.Table;
32 import javax.persistence.Temporal;
33 import javax.persistence.TemporalType;
34
35 import org.hibernate.annotations.GenericGenerator;
36 import org.hibernate.envers.Audited;
37
38 @Entity
39 @Table( name = "EVENTS" )
40 @Audited  // <--- this tell Envers to audit (track changes to) this entity
41 public class Event {
42     private Long id;
43
44     private String title;
45     private Date date;
46
47         public Event() {
48                 // this form used by Hibernate
49         }
50
51         public Event(String title, Date date) {
52                 // for application use, to create new events
53                 this.title = title;
54                 this.date = date;
55         }
56
57         @Id
58         @GeneratedValue(generator="increment")
59         @GenericGenerator(name="increment", strategy = "increment")
60     public Long getId() {
61                 return id;
62     }
63
64     private void setId(Long id) {
65                 this.id = id;
66     }
67
68         @Temporal(TemporalType.TIMESTAMP)
69         @Column(name = "EVENT_DATE")
70     public Date getDate() {
71                 return date;
72     }
73
74     public void setDate(Date date) {
75                 this.date = date;
76     }
77
78     public String getTitle() {
79                 return title;
80     }
81
82     public void setTitle(String title) {
83                 this.title = title;
84     }
85
86         @Override
87         public int hashCode() {
88                 int result = title.hashCode();
89                 result = 31 * result + date.hashCode();
90                 return result;
91         }
92 }