Create Employment relationship

This commit is contained in:
Tobias Eidelpes 2021-04-02 16:52:00 +02:00
parent 230d170b58
commit 37b60c4eeb
2 changed files with 113 additions and 0 deletions

View File

@ -0,0 +1,58 @@
package dst.ass1.jpa.model.impl;
import dst.ass1.jpa.model.IDriver;
import dst.ass1.jpa.model.IEmployment;
import dst.ass1.jpa.model.IEmploymentKey;
import dst.ass1.jpa.model.IOrganization;
import org.hibernate.annotations.Target;
import javax.persistence.*;
import java.util.Date;
import static dst.ass1.jpa.util.Constants.T_DRIVER;
import static dst.ass1.jpa.util.Constants.T_ORGANIZATION;
@Entity
public class Employment implements IEmployment {
@EmbeddedId @Target(EmploymentKey.class) private IEmploymentKey id;
private Date since;
private Boolean active;
@MapsId(T_ORGANIZATION)
@ManyToOne(targetEntity = Organization.class)
IOrganization organization;
@MapsId(T_DRIVER)
@ManyToOne(targetEntity = Driver.class)
IDriver driver;
@Override
public IEmploymentKey getId() {
return id;
}
@Override
public void setId(IEmploymentKey employmentKey) {
this.id = employmentKey;
}
@Override
public Date getSince() {
return since;
}
@Override
public void setSince(Date since) {
this.since = since;
}
@Override
public Boolean isActive() {
return active;
}
@Override
public void setActive(Boolean active) {
this.active = active;
}
}

View File

@ -0,0 +1,55 @@
package dst.ass1.jpa.model.impl;
import dst.ass1.jpa.model.IDriver;
import dst.ass1.jpa.model.IEmploymentKey;
import dst.ass1.jpa.model.IOrganization;
import javax.persistence.Embeddable;
import javax.persistence.ManyToOne;
import java.io.Serializable;
import java.util.Objects;
@Embeddable
public class EmploymentKey implements IEmploymentKey, Serializable {
@ManyToOne(targetEntity = Driver.class)
IDriver driver;
@ManyToOne(targetEntity = Organization.class)
IOrganization organization;
public EmploymentKey() {
}
@Override
public IDriver getDriver() {
return driver;
}
@Override
public void setDriver(IDriver driver) {
this.driver = driver;
}
@Override
public IOrganization getOrganization() {
return organization;
}
@Override
public void setOrganization(IOrganization organization) {
this.organization = organization;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
EmploymentKey that = (EmploymentKey) o;
return getDriver().equals(that.getDriver()) && getOrganization().equals(that.getOrganization());
}
@Override
public int hashCode() {
return Objects.hash(getDriver(), getOrganization());
}
}