/* * Hibernate, Relational Persistence for Idiomatic Java * * 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>. */ //$Id$ package org.hibernate.test.quote; import java.io.Serializable; import java.util.HashSet; import java.util.Set; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToMany; import javax.persistence.ManyToOne; import javax.persistence.Table; import javax.persistence.UniqueConstraint; /** * @author Emmanuel Bernard */ @Entity @Table(name = "`User`", uniqueConstraints = @UniqueConstraint(columnNames = { "house3" })) public class User implements Serializable { @Id @GeneratedValue(strategy = GenerationType.AUTO) private long id; @ManyToMany private Set<Role> roles = new HashSet<Role>(); // These exist solely for HHH-8464 to ensure that the various forms of quoting are normalized internally // (using backticks), including the join column. Without normalization, the mapping will throw a // DuplicateMappingException. @ManyToOne @JoinColumn(name = "\"house\"") private House house; @Column(name = "\"house\"", insertable = false, updatable = false ) private Long house1; @Column(name = "`house`", insertable = false, updatable = false ) private Long house2; // test UK on FK w/ global quoting -- see HHH-8638 // This MUST be initialized. Several DBs do not allow multiple null values in a unique column. @ManyToOne(cascade = CascadeType.ALL) @JoinColumn(name = "house3") private House house3 = new House(); public long getId() { return id; } public void setId(long id) { this.id = id; } public Set<Role> getRoles() { return roles; } public void setRoles(Set<Role> roles) { this.roles = roles; } public House getHouse() { return house; } public void setHouse(House house) { this.house = house; } public Long getHouse1() { return house1; } public void setHouse1(Long house1) { this.house1 = house1; } public Long getHouse2() { return house2; } public void setHouse2(Long house2) { this.house2 = house2; } public House getHouse3() { return house; } public void setHouse3(House house3) { this.house3 = house3; } }