package kr.debop4j.search.hibernate.model;
import kr.debop4j.core.tools.HashTool;
import kr.debop4j.data.model.AnnotatedEntityBase;
import lombok.Getter;
import lombok.Setter;
import org.apache.lucene.analysis.kr.KoreanAnalyzer;
import org.hibernate.search.annotations.*;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import java.util.Date;
/**
* kr.debop4j.search.hibernate.model.Employee
*
* @author 배성혁 ( sunghyouk.bae@gmail.com )
* @since 13. 4. 25. 오후 2:21
*/
@Entity
@Indexed
@Analyzer(impl = KoreanAnalyzer.class)
@Getter
@Setter
public class Employee extends AnnotatedEntityBase {
private static final long serialVersionUID = 8568479431657188039L;
public Employee() {}
public Employee(Integer id, String lastname, String dept) {
this.id = id;
this.lastname = lastname;
this.dept = dept;
}
@Id
@DocumentId
private Integer id;
@Field(store = Store.YES)
private String lastname;
@Field(store = Store.YES)
private String dept;
@Temporal(TemporalType.DATE)
@Field(store = Store.YES, index = Index.YES, analyze = Analyze.NO)
@DateBridge(resolution = Resolution.DAY)
private Date hireDate;
@Override
public int hashCode() {
return HashTool.compute(id);
}
}