package ru.semiot.services.analyzing.database; import java.io.Serializable; import java.util.Date; import javax.persistence.Basic; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.Lob; import javax.persistence.ManyToOne; import javax.persistence.NamedQueries; import javax.persistence.NamedQuery; import javax.persistence.Table; import javax.persistence.Temporal; import javax.persistence.TemporalType; import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; import javax.xml.bind.annotation.XmlRootElement; /** * * @author Daniil Garayzuev <garayzuev@gmail.com> */ @Entity @Table(name = "events") @XmlRootElement @NamedQueries({ @NamedQuery(name = "Events.findAll", query = "SELECT e FROM Events e"), @NamedQuery(name = "Events.findById", query = "SELECT e FROM Events e WHERE e.id = :id"), @NamedQuery(name = "Events.findByTime", query = "SELECT e FROM Events e WHERE e.time BETWEEN :st_time AND :end_time AND e.queryId = :id ORDER BY e.time")}) public class Events implements Serializable { private static final long serialVersionUID = 1L; @Id @Basic(optional = false) @NotNull @Column(name = "id") private Integer id; @Lob @Size(max = 2147483647) @Column(name = "events") private String events; @Basic(optional = false) @NotNull @Column(name = "time") @Temporal(TemporalType.TIMESTAMP) private Date time; @JoinColumn(name = "query_id", referencedColumnName = "id") @ManyToOne private Query queryId; public Events() { } public Events(int id, Query query, String events) { this.id = id; this.queryId = query; this.events = events; this.time = new Date(); } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getEvents() { return events; } public void setEvents(String events) { this.events = events; this.time = new Date(); } public Date getTime() { return time; } public void setTime(Date time) { this.time = time; } public Query getQueryId() { return queryId; } public void setQueryId(Query query) { this.queryId = query; } @Override public int hashCode() { int hash = 0; hash += (id != null ? id.hashCode() : 0); return hash; } @Override public boolean equals(Object object) { if (!(object instanceof Events)) { return false; } Events other = (Events) object; if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) { return false; } return true; } @Override public String toString() { return "{\"created\": \"" + time.getTime() + "\",\n\"events\": \"" + events.replace("\"", "\\\"").replace("\n", "\\n") + "\"}"; } }