/* * 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.elasticsearch.test.model; import java.util.HashSet; import java.util.Set; import javax.persistence.CascadeType; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.ManyToOne; import javax.persistence.OneToMany; import org.hibernate.annotations.Target; import org.hibernate.search.annotations.ContainedIn; import org.hibernate.search.annotations.Field; import org.hibernate.search.annotations.Indexed; import org.hibernate.search.annotations.IndexedEmbedded; /** * @author Emmanuel Bernard */ @Entity @Indexed public class Address { @Id @GeneratedValue private Long id; @Field private String street; @IndexedEmbedded(depth = 1, targetElement = Owner.class) @Target(Owner.class) private Person ownedBy; @OneToMany(mappedBy = "address") @ContainedIn private Set<Tower> towers = new HashSet<Tower>(); @ManyToOne(cascade = CascadeType.ALL) @IndexedEmbedded private Country country; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getStreet() { return street; } public void setStreet(String street) { this.street = street; } public Person getOwnedBy() { return ownedBy; } public void setOwnedBy(Person ownedBy) { this.ownedBy = ownedBy; } public Set<Tower> getTowers() { return towers; } public void setTowers(Set<Tower> towers) { this.towers = towers; } public Country getCountry() { return country; } public void setCountry(Country country) { this.country = country; } }