/* * Hibernate Search, full-text search for your domain model * * License: GNU Lesser General Public License (LGPL), version 2.1 or later * See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>. */ package org.hibernate.search.test.query.dsl; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.ManyToOne; import org.hibernate.search.annotations.Analyze; import org.hibernate.search.annotations.Field; import org.hibernate.search.annotations.Indexed; import org.hibernate.search.annotations.IndexedEmbedded; import org.hibernate.search.annotations.SortableField; import org.hibernate.search.annotations.Store; import org.hibernate.search.annotations.TermVector; /** * @author Emmanuel Bernard */ @Entity @Indexed public class Coffee { public static final String NAME_SORT = "name_sort"; @Id @GeneratedValue public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } private Integer id; @Field(termVector = TermVector.NO, store = Store.YES) @Field(name = NAME_SORT, analyze = Analyze.NO) @SortableField(forField = NAME_SORT) public String getName() { return name; } public void setName(String name) { this.name = name; } private String name; @Field(termVector = TermVector.YES) public String getSummary() { return summary; } public void setSummary(String summary) { this.summary = summary; } private String summary; @Column(length = 2000) @Field(termVector = TermVector.YES) public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } private String description; public int getIntensity() { return intensity; } public void setIntensity(int intensity) { this.intensity = intensity; } private int intensity; // Not stored nor term vector, i.e. cannot be used for More Like This @Field public String getInternalDescription() { return internalDescription; } public void setInternalDescription(String internalDescription) { this.internalDescription = internalDescription; } private String internalDescription; @ManyToOne @IndexedEmbedded(includeEmbeddedObjectId = true) public CoffeeBrand getBrand() { return brand; } public void setBrand(CoffeeBrand brand) { this.brand = brand; } private CoffeeBrand brand; @Override public String toString() { return "Coffee{" + "id=" + id + ", name='" + name + '\'' + ", summary='" + summary + '\'' + ", description='" + description + '\'' + ", intensity=" + intensity + '}'; } }