code_junkie

Creation timestamp and last update timestamp with Hibernate and MySQL

Nov 11th, 2011
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.53 KB | None | 0 0
  1. import java.util.Date;
  2.  
  3. import javax.persistence.Column;
  4. import javax.persistence.MappedSuperclass;
  5. import javax.persistence.PrePersist;
  6. import javax.persistence.PreUpdate;
  7. import javax.persistence.Temporal;
  8. import javax.persistence.TemporalType;
  9.  
  10. @MappedSuperclass
  11. public class AbstractTimestampEntity {
  12.  
  13. @Temporal(TemporalType.TIMESTAMP)
  14. @Column(name = "created", nullable = false)
  15. private Date created;
  16.  
  17. @Temporal(TemporalType.TIMESTAMP)
  18. @Column(name = "updated", nullable = false)
  19. private Date updated;
  20.  
  21. @PrePersist
  22. protected void onCreate() {
  23. updated = created = new Date();
  24. }
  25.  
  26. @PreUpdate
  27. protected void onUpdate() {
  28. updated = new Date();
  29. }
  30. }
  31.  
  32. import java.util.Date;
  33.  
  34. import javax.persistence.Column;
  35. import javax.persistence.MappedSuperclass;
  36. import javax.persistence.PrePersist;
  37. import javax.persistence.PreUpdate;
  38. import javax.persistence.Temporal;
  39. import javax.persistence.TemporalType;
  40.  
  41. @MappedSuperclass
  42. public class AbstractTimestampEntity {
  43.  
  44. @Temporal(TemporalType.TIMESTAMP)
  45. @Column(name = "created", nullable = false)
  46. private Date created;
  47.  
  48. @Temporal(TemporalType.TIMESTAMP)
  49. @Column(name = "updated", nullable = false)
  50. private Date updated;
  51.  
  52. @PrePersist
  53. protected void onCreate() {
  54. updated = created = new Date();
  55. }
  56.  
  57. @PreUpdate
  58. protected void onUpdate() {
  59. updated = new Date();
  60. }
  61. }
  62.  
  63. @Entity
  64. @Table(name = "campaign")
  65. public class Campaign extends AbstractTimestampEntity implements Serializable {
  66. ...
  67. }
  68.  
  69. public interface TimeStamp {
  70. public Date getCreatedDate();
  71. public void setCreatedDate(Date createdDate);
  72. public Date getLastUpdated();
  73. public void setLastUpdated(Date lastUpdatedDate);
  74. }
  75.  
  76. public class TimeStampInterceptor extends EmptyInterceptor {
  77.  
  78. public boolean onFlushDirty(Object entity, Serializable id, Object[] currentState,
  79. Object[] previousState, String[] propertyNames, Type[] types) {
  80. if (entity instanceof TimeStamped) {
  81. int indexOf = ArrayUtils.indexOf(propertyNames, "lastUpdated");
  82. currentState[indexOf] = new Date();
  83. return true;
  84. }
  85. return false;
  86. }
  87.  
  88. public boolean onSave(Object entity, Serializable id, Object[] state,
  89. String[] propertyNames, Type[] types) {
  90. if (entity instanceof TimeStamped) {
  91. int indexOf = ArrayUtils.indexOf(propertyNames, "createdDate");
  92. state[indexOf] = new Date();
  93. return true;
  94. }
  95. return false;
  96. }
  97. }
Add Comment
Please, Sign In to add comment