/* * COMSAT * Copyright (c) 2013-2014, Parallel Universe Software Co. All rights reserved. * * This program and the accompanying materials are dual-licensed under * either the terms of the Eclipse Public License v1.0 as published by * the Eclipse Foundation * * or (per the licensee's choosing) * * under the terms of the GNU Lesser General Public License version 3.0 * as published by the Free Software Foundation. */ /* * Based on the corresponding class in Spring Boot Samples. * Copyright the original author(s). * Released under the ASF 2.0 license. */ package comsat.sample.data.jpa.domain; import java.io.Serializable; import java.util.Set; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.ManyToOne; import javax.persistence.OneToMany; import org.hibernate.annotations.NaturalId; @Entity public class Hotel implements Serializable { private static final long serialVersionUID = 1L; @Id @GeneratedValue private Long id; @ManyToOne(optional = false) @NaturalId private City city; @Column(nullable = false) @NaturalId private String name; @Column(nullable = false) private String address; @Column(nullable = false) private String zip; @OneToMany(fetch = FetchType.LAZY, mappedBy = "hotel") private Set<Review> reviews; protected Hotel() { } public Hotel(City city, String name) { this.city = city; this.name = name; } public City getCity() { return this.city; } public String getName() { return this.name; } public String getAddress() { return this.address; } public String getZip() { return this.zip; } }