/* * Hibernate OGM, Domain model persistence for NoSQL datastores * * 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.ogm.demos.ogm101.part3.model; import java.util.HashSet; import java.util.Set; import javax.persistence.CascadeType; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.OneToMany; import org.hibernate.annotations.GenericGenerator; import org.hibernate.search.annotations.Indexed; /** * A person organizing hikes. * * @author Gunnar Morling */ @Entity @Indexed public class Person { @Id @GeneratedValue(generator = "uuid") @GenericGenerator(name = "uuid", strategy = "uuid2") private String id; private String firstName; private String lastName; @OneToMany( mappedBy = "organizer", cascade = { CascadeType.PERSIST, CascadeType.MERGE }, fetch = FetchType.EAGER ) private Set<Hike> organizedHikes = new HashSet<>(); // constructors, getters and setters... public Person() { } public Person(String id) { this.id = id; } public Person(String firstName, String lastName) { this.firstName = firstName; this.lastName = lastName; } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } public Set<Hike> getOrganizedHikes() { return organizedHikes; } public void setOrganizedHikes(Set<Hike> organizedHikes) { this.organizedHikes = organizedHikes; } }