Skip to content
This repository was archived by the owner on Oct 6, 2023. It is now read-only.

Commit bddf4bd

Browse files
committed
v1.2: adding dates added and updated with persistence hooks to the
snapshot table Signed-off-by: Neal Ensor <[email protected]>
1 parent a0b94aa commit bddf4bd

File tree

1 file changed

+78
-0
lines changed

1 file changed

+78
-0
lines changed

src/main/java/gov/osti/entity/MetadataSnapshot.java

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11

22
package gov.osti.entity;
33

4+
import com.fasterxml.jackson.annotation.JsonFormat;
45
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
56
import gov.osti.entity.DOECodeMetadata.Status;
67
import java.io.Serializable;
8+
import java.util.Date;
9+
import javax.persistence.Basic;
710
import javax.persistence.Column;
811
import javax.persistence.Entity;
912
import javax.persistence.EnumType;
@@ -13,7 +16,11 @@
1316
import javax.persistence.Lob;
1417
import javax.persistence.NamedQueries;
1518
import javax.persistence.NamedQuery;
19+
import javax.persistence.PrePersist;
20+
import javax.persistence.PreUpdate;
1621
import javax.persistence.Table;
22+
import javax.persistence.Temporal;
23+
import javax.persistence.TemporalType;
1724
import javax.persistence.UniqueConstraint;
1825

1926
/**
@@ -44,6 +51,15 @@ public class MetadataSnapshot implements Serializable {
4451
@Lob
4552
@Column (name = "json")
4653
private String json;
54+
// administrative dates
55+
@Basic (optional = false)
56+
@JsonFormat (shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd", timezone = "EST")
57+
@Temporal (TemporalType.TIMESTAMP)
58+
private Date dateRecordAdded;
59+
@Basic (optional = false)
60+
@JsonFormat (shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd", timezone = "EST")
61+
@Temporal (TemporalType.TIMESTAMP)
62+
private Date dateRecordUpdated;
4763

4864
/**
4965
* Get the CODE ID identifier.
@@ -90,4 +106,66 @@ public Status getSnapshotStatus() {
90106
public void setSnapshotStatus(Status snapshotStatus) {
91107
this.snapshotStatus = snapshotStatus;
92108
}
109+
110+
/**
111+
* Method called when a record is first created. Sets dates added and
112+
* updated.
113+
*/
114+
@PrePersist
115+
void createdAt() {
116+
setDateRecordAdded();
117+
setDateRecordUpdated();
118+
}
119+
120+
/**
121+
* Method called when the record is updated.
122+
*/
123+
@PreUpdate
124+
void updatedAt() {
125+
if (null==getDateRecordAdded())
126+
setDateRecordAdded();
127+
setDateRecordUpdated();
128+
}
129+
130+
/**
131+
* @return the dateRecordAdded
132+
*/
133+
public Date getDateRecordAdded() {
134+
return dateRecordAdded;
135+
}
136+
137+
/**
138+
* @param dateRecordAdded the dateRecordAdded to set
139+
*/
140+
public void setDateRecordAdded(Date dateRecordAdded) {
141+
this.dateRecordAdded = dateRecordAdded;
142+
}
143+
144+
/**
145+
* Set the DATE ADDED to now.
146+
*/
147+
public void setDateRecordAdded() {
148+
setDateRecordAdded(new Date());
149+
}
150+
151+
/**
152+
* @return the dateRecordUpdated
153+
*/
154+
public Date getDateRecordUpdated() {
155+
return dateRecordUpdated;
156+
}
157+
158+
/**
159+
* @param dateRecordUpdated the dateRecordUpdated to set
160+
*/
161+
public void setDateRecordUpdated(Date dateRecordUpdated) {
162+
this.dateRecordUpdated = dateRecordUpdated;
163+
}
164+
165+
/**
166+
* Set DATE UPDATED to now.
167+
*/
168+
public void setDateRecordUpdated() {
169+
setDateRecordUpdated(new Date());
170+
}
93171
}

0 commit comments

Comments
 (0)