Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package de.appsolve.padelcampus.db.model; import org.hibernate.annotations.Type; import org.joda.time.LocalDateTime; import javax.persistence.*; import java.util.Objects; /** * @author dominik */ @MappedSuperclass public abstract class BaseEntity implements BaseEntityI { @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(unique = true, nullable = false) private Long id; @Column @Type(type = "org.jadira.usertype.dateandtime.joda.PersistentLocalDateTime") private LocalDateTime lastUpdated; @Override public Long getId() { return id; } public void setId(Long id) { this.id = id; } public LocalDateTime getLastUpdated() { return lastUpdated; } public void setLastUpdated(LocalDateTime lastUpdated) { this.lastUpdated = lastUpdated; } @Override public int hashCode() { int hash = 5; hash = 73 * hash + Objects.hashCode(this.id); return hash; } @Override public boolean equals(Object obj) { if (obj == null) { return false; } if (getClass() != obj.getClass()) { return false; } final BaseEntity other = (BaseEntity) obj; return Objects.equals(this.id, other.id); } @Override public int compareTo(BaseEntityI o) { return toString().compareToIgnoreCase(o.toString()); } @PreUpdate public void updateLastUpdated() { setLastUpdated(new LocalDateTime()); } }