001 package org.kuali.student.common.entity; 002 003 import javax.persistence.Column; 004 import javax.persistence.Id; 005 import javax.persistence.MappedSuperclass; 006 import javax.persistence.PrePersist; 007 import javax.persistence.PreUpdate; 008 import javax.persistence.Version; 009 010 import org.kuali.student.common.util.UUIDHelper; 011 012 @MappedSuperclass 013 public abstract class BaseEntity { 014 015 @Id 016 @Column(name = "ID") 017 private String id; 018 019 @Version 020 @Column(name="VER_NBR") 021 private Long versionNumber; 022 023 @Column(name="OBJ_ID",length=KSEntityConstants.OBJ_ID_LENGTH) 024 private String objectId; 025 026 public String getObjectId() { 027 return objectId; 028 } 029 030 public void setObjectId(String objectId) { 031 this.objectId = objectId; 032 } 033 034 @PrePersist 035 public void prePersist(){ 036 //Auto generate the object id, and auto generate the ID if it's not set 037 this.id = UUIDHelper.genStringUUID(this.id); 038 this.objectId = UUIDHelper.genStringUUID(); 039 onPrePersist(); 040 } 041 042 @PreUpdate 043 public void preUpdate(){ 044 onPreUpdate(); 045 } 046 047 048 //Override this to add additional functionality for the PrePersist Lifecycle 049 protected void onPrePersist() { 050 } 051 052 //Override this to add additional functionality for the PreUpdate Lifecycle 053 protected void onPreUpdate() { 054 } 055 056 public Long getVersionNumber() { 057 return versionNumber; 058 } 059 060 public void setVersionNumber(Long versionNumber) { 061 this.versionNumber = versionNumber; 062 } 063 064 public String getId() { 065 return id; 066 } 067 068 public void setId(String id) { 069 this.id = id; 070 } 071 072 }