package kr.pe.kwonnam.hibernate4memcached.example.entity;
import org.hibernate.annotations.Cache;
import org.hibernate.annotations.CacheConcurrencyStrategy;
import javax.persistence.*;
import java.io.Serializable;
import java.util.Date;
/**
* @author KwonNam Son (kwon37xi@gmail.com)
*/
@Entity
@Table(name = "people")
@Cache(usage = CacheConcurrencyStrategy.READ_ONLY, region = "people")
public class Person implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "person_id", nullable = false)
private long id;
@Column(name = "name", length = 32, nullable = false)
private String name;
@Column(name="birthdate", nullable = true)
@Temporal(TemporalType.DATE)
private Date birthdate;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Date getBirthdate() {
return birthdate;
}
public void setBirthdate(Date birthdate) {
this.birthdate = birthdate;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Person person = (Person) o;
if (id != person.id) return false;
return true;
}
@Override
public int hashCode() {
return (int) (id ^ (id >>> 32));
}
@Override
public String toString() {
return "Person{" +
"id='" + id + '\'' +
", name='" + name + '\'' +
", birthdate=" + birthdate +
'}';
}
}