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; } }