--- /dev/null
+package net.java.examples.hmp.model.domain.userchangeinfo;\r
+\r
+import java.io.Serializable;\r
+\r
+import javax.persistence.Embedded;\r
+import javax.persistence.MappedSuperclass;\r
+\r
+import net.java.examples.hmp.model.domain.BaseEntity;\r
+import net.java.examples.hmp.model.domain.extension.IUserChangeTrackable;\r
+\r
+@MappedSuperclass\r
+public abstract class BaseUserChangeTrackedEntity<T extends Serializable> extends BaseEntity<T> implements IUserChangeTrackable {\r
+\r
+ private static final long serialVersionUID = -7850597447088838323L;\r
+\r
+ @Embedded\r
+ private UserChangeInfo userChangeInfo = new UserChangeInfo();\r
+\r
+ @Override\r
+ public UserChangeInfo getUserChangeInfo() {\r
+ // Workaround for Hibernate! For detailed information see this link: https://hibernate.atlassian.net/browse/HHH-7610\r
+ if (this.userChangeInfo == null) {\r
+ this.userChangeInfo = new UserChangeInfo();\r
+ }\r
+ return this.userChangeInfo;\r
+ }\r
+\r
+ public void setUserChangeInfo(UserChangeInfo userChangeInfo) {\r
+ this.userChangeInfo = userChangeInfo;\r
+ }\r
+}\r