diff --git a/src/main/java/entity/UserStar.java b/src/main/java/entity/UserStar.java
new file mode 100644
index 0000000..c0bf225
--- /dev/null
+++ b/src/main/java/entity/UserStar.java
@@ -0,0 +1,43 @@
+package entity;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.ForeignKey;
+import javax.persistence.Id;
+import javax.persistence.IdClass;
+import javax.persistence.JoinColumn;
+import javax.persistence.OneToOne;
+import javax.persistence.Table;
+
+@Entity
+@Table(name = "UserFavorite")
+@IdClass(UserStarId.class)  
+public class UserStar {
+    @Id
+    @Column(name = "user_id", length = 36, nullable = false)
+    public String userid;  
+
+    @Id
+    @Column(name = "seed_id", length = 64, nullable = false)
+    public String seedid;
+
+    @OneToOne(optional = false)
+    @JoinColumn(
+        name = "user_id",
+        referencedColumnName = "user_id",
+        foreignKey = @ForeignKey(name = "fk_user_id"),
+        insertable = false, updatable = false
+    )
+    public User user;
+
+    @OneToOne(optional = false)
+    @JoinColumn(
+        name = "seed_id",
+        referencedColumnName = "seed_id",
+        foreignKey = @ForeignKey(name = "fk_seed_id"),
+        insertable = false, updatable = false
+    )
+    public Seed seed;
+
+    public UserStar() {}  
+}
\ No newline at end of file
diff --git a/src/main/java/entity/UserStarId.java b/src/main/java/entity/UserStarId.java
new file mode 100644
index 0000000..6cc362b
--- /dev/null
+++ b/src/main/java/entity/UserStarId.java
@@ -0,0 +1,29 @@
+package entity;
+
+import java.io.Serializable;
+import java.util.Objects;
+
+public class UserStarId implements Serializable {
+    public String userid;  
+    public String seedid;
+
+    public UserStarId() {}  
+
+    public UserStarId(String userid, String seedid) {
+        this.userid = userid;
+        this.seedid = seedid;
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+        UserStarId that = (UserStarId) o;
+        return Objects.equals(userid, that.userid) && Objects.equals(seedid, that.seedid);
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(userid, seedid);
+    }
+}
\ No newline at end of file
diff --git a/src/main/java/entity/VipSeed.java b/src/main/java/entity/VipSeed.java
new file mode 100644
index 0000000..72f8abf
--- /dev/null
+++ b/src/main/java/entity/VipSeed.java
@@ -0,0 +1,43 @@
+package entity;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.ForeignKey;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.OneToOne;
+import javax.persistence.Table;
+
+@Entity
+@Table(name = "VipSeed")
+public class VipSeed {
+    @Id
+    @Column(name = "seed_id", length = 64, nullable = false)
+    public String seedid;
+
+    @OneToOne(optional = false)
+    @JoinColumn(name = "seed_id", referencedColumnName = "seed_id", foreignKey = @ForeignKey(name = "fk_vip_seed"), insertable = false, updatable = false)
+    public Seed seed;
+
+    @Column(name = "seeder_count", nullable = false)
+    public int seedercount;
+
+    @Column(name = "reward_magic", nullable = false)
+    public int rewardmagic;
+
+    @Column(name = "stop_caching", nullable = false)
+    public int stopcaching;
+
+    @Column(name = "bonus", nullable = false)
+    public int bonus;
+
+    @Column(name = "cache_status", nullable = false)
+    public boolean cachestate;
+
+    @Column(name = "farmer_number", nullable = false)
+    public int farmernumber;
+
+    public VipSeed() {
+        // 默认构造函数
+    }
+}
\ No newline at end of file
