From 73e55d6559539b0abc840e54eb1e11491cd1dabb Mon Sep 17 00:00:00 2001 From: razzanYoni <13521087@mahasiswa.itb.ac.id> Date: Thu, 2 Nov 2023 00:39:00 +0700 Subject: [PATCH] refactor: subscription table --- .../java/org/tonality/model/Subscription.java | 32 ++++++++++++++----- 1 file changed, 24 insertions(+), 8 deletions(-) diff --git a/src/main/java/org/tonality/model/Subscription.java b/src/main/java/org/tonality/model/Subscription.java index 74deb62..56734ce 100644 --- a/src/main/java/org/tonality/model/Subscription.java +++ b/src/main/java/org/tonality/model/Subscription.java @@ -1,38 +1,54 @@ package org.tonality.model; +import lombok.Getter; +import lombok.Setter; + +import org.hibernate.Session; +import org.hibernate.SessionFactory; +import org.hibernate.Transaction; +import org.hibernate.annotations.CreationTimestamp; +import org.hibernate.annotations.UpdateTimestamp; import org.tonality.type.SubscriptionStatus; import org.hibernate.annotations.GenericGenerator; import org.hibernate.annotations.ColumnDefault; +import org.tonality.util.HibernateUtil; import javax.persistence.*; +import java.io.Serializable; import java.util.Date; +@Getter +@Setter @Entity(name = "subscription") -public class Subscription { +@Table(name = "subscription") +public class Subscription implements Serializable { @Id @GeneratedValue(generator = "increment") @GenericGenerator(name = "increment", strategy = "increment") @Column(name = "subscription_id") private long subscriptionId; - @Column(name = "user_id") + @Column(name = "user_id", nullable = false) private long userId; - @Column(name = "album_id") + @Column(name = "album_id", nullable = false) private long albumId; - @Column(name = "subscription_status") + @Column(name = "subscription_status", nullable = false) @Enumerated(EnumType.STRING) + @ColumnDefault("'PENDING'") private SubscriptionStatus status; - @Column(name = "created_at") + @Column(name = "created_at", updatable = false, nullable = false) + @CreationTimestamp @Temporal(TemporalType.TIMESTAMP) - @ColumnDefault("'CURRENT_TIMESTAMP'") + @ColumnDefault("CURRENT_TIMESTAMP(6)") private Date createdAt; - @Column(name = "updated_at") + @Column(name = "updated_at", nullable = false) + @UpdateTimestamp @Temporal(TemporalType.TIMESTAMP) - @ColumnDefault("'CURRENT_TIMESTAMP'") + @ColumnDefault("CURRENT_TIMESTAMP(6) on update CURRENT_TIMESTAMP(6)") private Date updatedAt; } -- GitLab