All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.dellroad.querystream.jpa.test.Employee Maven / Gradle / Ivy


/*
 * Copyright (C) 2018 Archie L. Cobbs. All rights reserved.
 */

package org.dellroad.querystream.jpa.test;

import java.util.Date;
import java.util.HashSet;
import java.util.Set;

import javax.persistence.Entity;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

@Entity
public class Employee extends AbstractPersistent {

    private String name;
    private float salary;
    private Date startDate;
    private Department department;
    private Employee manager;
    private Set directReports = new HashSet<>();

    public String getName() {
        return this.name;
    }
    public void setName(String name) {
        this.name = name;
    }

    public float getSalary() {
        return this.salary;
    }
    public void setSalary(float salary) {
        this.salary = salary;
    }

    @Temporal(TemporalType.TIMESTAMP)
    public Date getStartDate() {
        return this.startDate;
    }
    public void setStartDate(Date startDate) {
        this.startDate = startDate;
    }

    @ManyToOne
    public Employee getManager() {
        return this.manager;
    }
    public void setManager(Employee manager) {
        this.manager = manager;
    }

    @ManyToOne
    public Department getDepartment() {
        return this.department;
    }
    public void setDepartment(Department department) {
        this.department = department;
    }

    @OneToMany(mappedBy = "manager")
    public Set getDirectReports() {
        return this.directReports;
    }
    public void setDirectReports(Set directReports) {
        this.directReports = directReports;
    }

    @Override
    public String toString() {
        return this.getClass().getSimpleName()
          + "[name=" + (this.name != null ? "\"" + this.name + "\"" : null)
          + ",salary=" + this.salary
          + ",startDate=" + this.startDate
          + ",department=" + this.department
          + ",manager=" + this.manager
          + ",directReports=" + this.directReports
          + "]";
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy