package org.zstack.header.storage.primary;
import org.zstack.header.vo.ForeignKey;
import org.zstack.header.vo.ForeignKey.ReferenceOption;
import org.zstack.header.vo.SoftDeletionCascade;
import org.zstack.header.vo.SoftDeletionCascades;
import org.zstack.header.volume.VolumeEO;
import org.zstack.header.volume.VolumeVO;
import javax.persistence.*;
import java.sql.Timestamp;
/**
* Created by frank on 8/5/2015.
*/
@Entity
@Table
@SoftDeletionCascades({
@SoftDeletionCascade(parent = PrimaryStorageVO.class, joinColumn = "primaryStorageUuid"),
@SoftDeletionCascade(parent = VolumeVO.class, joinColumn = "volumeUuid")
})
public class ImageCacheVolumeRefVO {
@Id
@Column
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
@Column
@ForeignKey(parentEntityClass = ImageCacheVO.class, parentKey = "id", onDeleteAction = ReferenceOption.RESTRICT)
private long imageCacheId;
@Column
@ForeignKey(parentEntityClass = VolumeEO.class, parentKey = "uuid", onDeleteAction = ReferenceOption.CASCADE)
private String volumeUuid;
@Column
@ForeignKey(parentEntityClass = PrimaryStorageEO.class, parentKey = "uuid", onDeleteAction = ReferenceOption.CASCADE)
private String primaryStorageUuid;
@Column
private Timestamp createDate;
@Column
private Timestamp lastOpDate;
@PreUpdate
private void preUpdate() {
lastOpDate = null;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getPrimaryStorageUuid() {
return primaryStorageUuid;
}
public void setPrimaryStorageUuid(String primaryStorageUuid) {
this.primaryStorageUuid = primaryStorageUuid;
}
public long getImageCacheId() {
return imageCacheId;
}
public void setImageCacheId(long imageCacheId) {
this.imageCacheId = imageCacheId;
}
public String getVolumeUuid() {
return volumeUuid;
}
public void setVolumeUuid(String volumeUuid) {
this.volumeUuid = volumeUuid;
}
public Timestamp getCreateDate() {
return createDate;
}
public void setCreateDate(Timestamp createDate) {
this.createDate = createDate;
}
public Timestamp getLastOpDate() {
return lastOpDate;
}
public void setLastOpDate(Timestamp lastOpDate) {
this.lastOpDate = lastOpDate;
}
}