1 /* 2 * JBoss, Home of Professional Open Source 3 * Copyright 2005, JBoss Inc., and individual contributors as indicated 4 * by the @authors tag. See the copyright.txt in the distribution for a 5 * full listing of individual contributors. 6 * 7 * This is free software; you can redistribute it and/or modify it 8 * under the terms of the GNU Lesser General Public License as 9 * published by the Free Software Foundation; either version 2.1 of 10 * the License, or (at your option) any later version. 11 * 12 * This software is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 * Lesser General Public License for more details. 16 * 17 * You should have received a copy of the GNU Lesser General Public 18 * License along with this software; if not, write to the Free 19 * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 20 * 02110-1301 USA, or see the FSF site: http://www.fsf.org. 21 */ 22 package org.jboss.ejb3.test.singletableinheritance; 23 24 import java.math.BigDecimal; 25 import javax.persistence.DiscriminatorType; 26 import javax.persistence.Entity; 27 import javax.persistence.Inheritance; 28 import javax.persistence.InheritanceType; 29 import javax.persistence.JoinColumn; 30 import javax.persistence.OneToOne; 31 import javax.persistence.DiscriminatorColumn; 32 import javax.persistence.DiscriminatorValue; 33 34 /** 35 * @author Gavin King 36 */ 37 @Entity 38 @Inheritance(strategy = InheritanceType.SINGLE_TABLE) 39 @DiscriminatorColumn(discriminatorType = DiscriminatorType.STRING) 40 @DiscriminatorValue("EMPLOYEE") 41 public class Employee extends Person 42 { 43 private String title; 44 private BigDecimal salary; 45 private Employee manager; 46 47 /** 48 * @return Returns the title. 49 */ 50 public String getTitle() 51 { 52 return title; 53 } 54 55 /** 56 * @param title The title to set. 57 */ 58 public void setTitle(String title) 59 { 60 this.title = title; 61 } 62 63 @OneToOne 64 @JoinColumn(name = "manager") 65 public Employee getManager() 66 { 67 return manager; 68 } 69 70 /** 71 * @param manager The manager to set. 72 */ 73 public void setManager(Employee manager) 74 { 75 this.manager = manager; 76 } 77 78 /** 79 * @return Returns the salary. 80 */ 81 public BigDecimal getSalary() 82 { 83 return salary; 84 } 85 86 /** 87 * @param salary The salary to set. 88 */ 89 public void setSalary(BigDecimal salary) 90 { 91 this.salary = salary; 92 } 93 } 94