package it.demo.twitterlike.server.domain; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.ManyToOne; import javax.persistence.Table; import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; import org.hibernate.annotations.Cache; import org.hibernate.annotations.CacheConcurrencyStrategy; @Entity @Table(name = "T_MESSAGE") @Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE) public class Message extends AbstractAuditingEntity<Long> { private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; @ManyToOne(optional = false) private User author; @NotNull @Size(min = 0, max = 160) private String text; public Message() { } public Message(User author, String text) { this.author = author; this.text = text; } public User getAuthor() { return author; } public void setAuthor(User author) { this.author = author; } public String getText() { return text; } public void setText(String text) { this.text = text; } public Long getId() { return id; } public void setId(Long id) { this.id = id; } @Override public String toString() { return "Message [author=" + author + ", text=" + text + "]"; } }