package kr.debop4j.data.mongodb.model; import com.google.common.base.Objects; import com.google.common.collect.Sets; import kr.debop4j.data.ogm.model.UuidEntityBase; import lombok.Getter; import lombok.Setter; import org.apache.lucene.analysis.cjk.CJKAnalyzer; import org.apache.lucene.analysis.kr.KoreanAnalyzer; import org.hibernate.search.annotations.*; import javax.persistence.*; import java.util.Date; import java.util.Set; /** * kr.debop4j.data.ogm.dao.Player * * @author 배성혁 ( sunghyouk.bae@gmail.com ) * @since 13. 4. 16. 오전 11:34 */ @Entity @Indexed @Getter @Setter @Analyzer(impl = CJKAnalyzer.class) public class Player extends UuidEntityBase { private static final long serialVersionUID = 7317574732346075920L; @Column(name = "player_name") @Field(index = Index.YES, analyze = Analyze.YES, store = Store.NO) @Boost(1.2f) private String name; @Column(name = "player_surname") @Field(index = Index.YES, analyze = Analyze.NO, store = Store.NO) private String surname; @Column(name = "player_age") @NumericField @Field(index = Index.YES, analyze = Analyze.NO, store = Store.NO) private int age; @Column(name = "player_birth") @Temporal(TemporalType.DATE) @Field(index = Index.YES, analyze = Analyze.NO, store = Store.NO) @DateBridge(resolution = Resolution.DAY) private Date birth; @Field(index = Index.YES, analyze = Analyze.YES, store = Store.NO) @Boost(2.0f) @Analyzer(impl = KoreanAnalyzer.class) private String description = "1. 동해 물과 백두산이 마르고 닳도록," + " 하느님이 보우하사 우리나라 만세." + "(후렴) 무궁화 삼천리 화려 강산," + " 대한 사람 대한으로 길이 보전하세." + "2. 남산 위에 저 소나무 철갑을 두른 듯," + " 바람 서리 불변함은 우리 기상일세." + "3. 가을 하늘 공활한데 높고 구름 없이," + " 밝은 달은 우리 가슴 일편단심일세." + "4. 이 기상과 이 맘으로 충성을 다하여," + " 괴로우나 즐거우나 나라 사랑하세."; @ManyToMany(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER) @IndexedEmbedded Set<Tournament> tournaments = Sets.newHashSet(); @Override protected Objects.ToStringHelper buildStringHelper() { return super.buildStringHelper() .add("name", name) .add("surname", surname) .add("birth", birth) .add("age", age); } }