package jeffaschenk.commons.touchpoint.model;
import jeffaschenk.commons.util.TimeUtils;
import org.hibernate.annotations.GenericGenerator;
import javax.persistence.*;
import java.util.Date;
@Entity
@Table(name = "elements", uniqueConstraints = {@UniqueConstraint(columnNames = "name")})
public class Element extends RootElement implements java.io.Serializable {
private static final long serialVersionUID = 1L;
private String name;
private boolean shared;
private Date timestamp;
private Owner owner;
public Element() {
super();
this.timestamp = TimeUtils.getNow();
}
@Override
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY, generator = "elementSequenceGenerator")
@GenericGenerator(name = "elementSequenceGenerator", strategy = "jeffaschenk.commons.touchpoint.model.dao.support.hibernate.PlatformSequenceGenerator",
parameters = {@org.hibernate.annotations.Parameter(name = "sequence", value = "elements_seq_id")})
public Integer getId() {
return super.getId();
}
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "owner_id", nullable = true)
public Owner getOwner() {
return this.owner;
}
public void setOwner(Owner owner) {
this.owner = owner;
}
@Column(name = "name", unique = true, nullable = false, length = 4096)
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Column(name = "shared")
public boolean isShared() {
return shared;
}
public void setShared(boolean shared) {
this.shared = shared;
}
@Column(name = "timestamp")
public Date getTimestamp() {
return timestamp;
}
public void setTimestamp(Date timestamp) {
this.timestamp = timestamp;
}
}