/* * JBoss, Home of Professional Open Source * * Distributable under LGPL license. * See terms of license at gnu.org. */ package com.jboss.dvd.seam; import java.io.Serializable; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.Table; import org.hibernate.annotations.Cache; import org.hibernate.annotations.CacheConcurrencyStrategy; import org.hibernate.search.annotations.Analyzer; import org.hibernate.search.annotations.DocumentId; import org.hibernate.search.annotations.Field; import org.hibernate.search.annotations.Fields; import org.hibernate.search.annotations.Index; import org.hibernate.search.annotations.Indexed; @Entity @Table(name="CATEGORIES") @Cache(usage=CacheConcurrencyStrategy.READ_ONLY) @Indexed public class Category implements Serializable { private static final long serialVersionUID = 5544598397835376242L; int id; String name; @Id @GeneratedValue @Column(name="CATEGORY") @DocumentId public int getCategoryId() { return id; } public void setCategoryId(int id) { this.id = id; } @Column(name="NAME",nullable=false,unique=true,length=50) @Fields({ @Field(index=Index.TOKENIZED), @Field(index=Index.TOKENIZED, name="name:ngrams", analyzer=@Analyzer(definition="ngrams"))}) public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public boolean equals(Object other) { if (other == null || !(other instanceof Category)) { return false; } Category otherCategory = (Category) other; return (getCategoryId() == otherCategory.getCategoryId()); } @Override public int hashCode() { return 37*getCategoryId() + 97; } }