package org.hibernate.envers.test.integration.inheritance.joined.relation;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
import javax.persistence.ManyToMany;
import org.hibernate.envers.Audited;
/**
* @author Lukasz Antoniak (lukasz dot antoniak at gmail dot com)
*/
@Entity
@Inheritance(strategy = InheritanceType.JOINED)
@Audited
public class RightsSubject {
@Id
@GeneratedValue
private Long id;
@Column(name = "APP_GROUP")
private String group;
@ManyToMany(mappedBy="members")
private Set<Role> roles = new HashSet<Role>();
public RightsSubject() {
}
public RightsSubject(Long id, String group) {
this.id = id;
this.group = group;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof RightsSubject)) return false;
RightsSubject that = (RightsSubject) o;
if (group != null ? !group.equals(that.group) : that.group != null) return false;
if (id != null ? !id.equals(that.id) : that.id != null) return false;
return true;
}
@Override
public int hashCode() {
int result = id != null ? id.hashCode() : 0;
result = 31 * result + (group != null ? group.hashCode() : 0);
return result;
}
@Override
public String toString() {
return "RightsSubject(id = " + id + ", group = " + group + ")";
}
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 String getGroup() {
return group;
}
public void setGroup(String group) {
this.group = group;
}
}