diff --git a/pom.xml b/pom.xml
index 5e052ae..1590f5d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -26,6 +26,31 @@
       <artifactId>commons-lang3</artifactId>
       <version>3.12.0</version>
     </dependency>
+    <dependency>
+      <groupId>javax.persistence</groupId>
+      <artifactId>javax.persistence-api</artifactId>
+      <version>2.2</version>
+    </dependency>
+    <dependency>
+      <groupId>org.hibernate</groupId>
+      <artifactId>hibernate-core</artifactId>
+      <version>5.6.14.Final</version>
+    </dependency>
+    <dependency>
+      <groupId>mysql</groupId>
+      <artifactId>mysql-connector-java</artifactId>
+      <version>8.0.32</version>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+      <version>1.7.36</version>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-simple</artifactId>
+      <version>1.7.36</version>
+    </dependency>
   </dependencies>
 
   <!-- 构建配置 -->
diff --git a/src/main/java/object/Appeal.java b/src/main/java/object/Appeal.java
index 3df37e8..5057179 100644
--- a/src/main/java/object/Appeal.java
+++ b/src/main/java/object/Appeal.java
@@ -1,9 +1,35 @@
 package object;
 
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.ForeignKey;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.Lob;
+import javax.persistence.ManyToOne;
+import javax.persistence.Table;
+
+@Entity
+@Table(name = "Appeal")
 public class Appeal {
+    @Id
+    @Column(name = "appeal_id", length = 64, nullable = false)
     public String appealid;
+
+    @Column(name = "user_id", length = 36, nullable = false)
     public String appealuserid;
+
+    @ManyToOne(optional = false)
+    @JoinColumn(name = "user_id", referencedColumnName = "user_id", foreignKey = @ForeignKey(name = "fk_appeal_user"), insertable = false, updatable = false)
+    public User user;
+
+    @Lob
+    @Column(name = "content", nullable = false)
     public String content;
+
+    @Column(name = "file_url", length = 255)
     public String fileURL;
+
+    @Column(name = "status", nullable = false)
     public int state; // 0: pending, 1: approved, 2: rejected
 }
diff --git a/src/main/java/object/BegInfo.java b/src/main/java/object/BegInfo.java
index 1ac6bf5..4c3589a 100644
--- a/src/main/java/object/BegInfo.java
+++ b/src/main/java/object/BegInfo.java
@@ -1,9 +1,31 @@
 package object;
 
+import java.util.Date;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Table;
+import javax.persistence.Temporal;
+import javax.persistence.TemporalType;
+
+@Entity
+@Table(name = "BegSeed")
 public class BegInfo {
+    @Id
+    @Column(name = "beg_id", length = 64, nullable = false)
     public String begid;
+
+    @Column(name = "beg_count", nullable = false)
     public int begnumbers;
+
+    @Column(name = "reward_magic", nullable = false)
     public int magic;
-    public String endtime;
+
+    @Column(name = "deadline", nullable = false)
+    @Temporal(TemporalType.TIMESTAMP)
+    public Date endtime;
+
+    @Column(name = "has_match", nullable = false)
     public boolean hasseed;
 }
diff --git a/src/main/java/object/Notice.java b/src/main/java/object/Notice.java
index 244eee1..a0b2b11 100644
--- a/src/main/java/object/Notice.java
+++ b/src/main/java/object/Notice.java
@@ -1,8 +1,25 @@
 package object;
 
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Lob;
+import javax.persistence.Table;
+
+@Entity
+@Table(name = "Announcement")
 public class Notice {
+    @Id
+    @Column(name = "announce_id", length = 64, nullable = false)
     public String noticeid;
+
+    @Lob
+    @Column(name = "content", nullable = false)
     public String noticecontent;
+
+    @Column(name = "is_public", nullable = false)
     public boolean state;
+
+    @Column(name = "tag", length = 100)
     public String posttag;
 }
diff --git a/src/main/java/object/Post.java b/src/main/java/object/Post.java
index 84f9757..463e242 100644
--- a/src/main/java/object/Post.java
+++ b/src/main/java/object/Post.java
@@ -1,11 +1,46 @@
 package object;
 
+import java.util.Date;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.ForeignKey;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.Lob;
+import javax.persistence.ManyToOne;
+import javax.persistence.Table;
+import javax.persistence.Temporal;
+import javax.persistence.TemporalType;
+
+@Entity
+@Table(name = "Post")
 public class Post {
+    @Id
+    @Column(name = "post_id", length = 64, nullable = false)
     public String postid;
+
+    @Column(name = "title", length = 255, nullable = false)
     public String posttitle;
+
+    @Lob
+    @Column(name = "content", nullable = false)
     public String postcontent;
+
+    @Column(name = "author_id", length = 36, nullable = false)
     public String postuserid;
-    public String posttime;
-    public String replytime;
-    public String readtime;
+
+    @ManyToOne(optional = false)
+    @JoinColumn(name = "author_id", referencedColumnName = "user_id", foreignKey = @ForeignKey(name = "fk_post_user"), insertable = false, updatable = false)
+    public User author;
+
+    @Column(name = "created_at", nullable = false)
+    @Temporal(TemporalType.TIMESTAMP)
+    public Date posttime;
+
+    @Column(name = "reply_count", nullable = false)
+    public int replytime;
+
+    @Column(name = "view_count", nullable = false)
+    public int readtime;
 }
diff --git a/src/main/java/object/Profile.java b/src/main/java/object/Profile.java
index a33e7cd..c8469a9 100644
--- a/src/main/java/object/Profile.java
+++ b/src/main/java/object/Profile.java
@@ -1,13 +1,46 @@
 package object;
 
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.ForeignKey;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.ManyToOne;
+import javax.persistence.Table;
+import javax.persistence.Transient;
+
+@Entity
+@Table(name = "UserMigration")
 public class Profile {//迁移信息
+    @Id
+    @Column(name = "migration_id", length = 64, nullable = false)
     public String profileurl;
+
+    @Column(name = "user_id", length = 36, nullable = false)
     public String userid;
+
+    @ManyToOne(optional = false)
+    @JoinColumn(name = "user_id", referencedColumnName = "user_id", foreignKey = @ForeignKey(name = "fk_um_user"), insertable = false, updatable = false)
+    public User user;
+
+    @Column(name = "approved", nullable = false)
     public boolean exampass;
+
+    @Column(name = "pending_magic", nullable = false)
     public String magictogive;
+
+    @Column(name = "pending_uploaded", nullable = false)
     public String uploadtogive;
+
+    @Transient
     public String downloadtogive;
+
+    @Column(name = "granted_magic", nullable = false)
     public String magicgived;
+
+    @Column(name = "granted_uploaded", nullable = false)
     public String uploadgived;
+
+    @Transient
     public String downloadgived;
 }
diff --git a/src/main/java/object/Seed.java b/src/main/java/object/Seed.java
index b353f46..b4f4c16 100644
--- a/src/main/java/object/Seed.java
+++ b/src/main/java/object/Seed.java
@@ -1,13 +1,53 @@
 package object;
 
+import java.util.Date;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.ForeignKey;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.ManyToOne;
+import javax.persistence.Table;
+import javax.persistence.Temporal;
+import javax.persistence.TemporalType;
+
+@Entity
+@Table(name = "Seed")
 public class Seed {
+    @Id
+    @Column(name = "seed_id", length = 64, nullable = false)
     public String seedid;
+
+    @Column(name = "owner_user_id", length = 36, nullable = false)
     public String seeduserid;
+
+    @ManyToOne(optional = false)
+    @JoinColumn(name = "owner_user_id", referencedColumnName = "user_id", foreignKey = @ForeignKey(name = "fk_seed_user"), insertable = false, updatable = false)
+    public User user;
+
+    @Column(name = "fake_hits", nullable = false)
     public int faketime;
+
+    @Column(name = "last_fake_check")
+    @Temporal(TemporalType.TIMESTAMP)
+    public Date lastfakecheck;
+
+    @Column(name = "external_url")
     public String outurl;
+
+    @Column(name = "title", length = 255, nullable = false)
     public String title;
+
+    @Column(name = "subtitle", length = 255)
     public String subtitle;
+
+    @Column(name = "size", length = 50, nullable = false)
     public String seedsize;
+
+    @Column(name = "tags")
     public String seedtag;
+
+    @Column(name = "popularity", nullable = false)
     public int downloadtimes;
 }
diff --git a/src/main/java/object/TransRecord.java b/src/main/java/object/TransRecord.java
index e32dce2..7f1c800 100644
--- a/src/main/java/object/TransRecord.java
+++ b/src/main/java/object/TransRecord.java
@@ -1,12 +1,54 @@
 package object;
 
+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.ManyToOne;
+import javax.persistence.Table;
+
+@Entity
+@Table(name = "Transport")
+@IdClass(TransportId.class)
 public class TransRecord{
+    @Id
+    @Column(name = "task_id", length = 64, nullable = false)
     public String taskid;
+
+    @Id
+    @Column(name = "uploader_id", length = 36, nullable = false)
     public String uploaduserid;
+
+    @ManyToOne(optional = false)
+    @JoinColumn(name = "uploader_id", referencedColumnName = "user_id", foreignKey = @ForeignKey(name = "fk_tr_user_up"), insertable = false, updatable = false)
+    public User uploader;
+
+    @Id
+    @Column(name = "downloader_id", length = 36, nullable = false)
     public String downloaduserid;
+
+    @ManyToOne(optional = false)
+    @JoinColumn(name = "downloader_id", referencedColumnName = "user_id", foreignKey = @ForeignKey(name = "fk_tr_user_down"), insertable = false, updatable = false)
+    public User downloader;
+
+    @Column(name = "seed_id", length = 64, nullable = false)
     public String seedid;
-    public int upload;
-    public int download;
-    public int maxupload;
-    public int maxdownload;
+
+    @ManyToOne(optional = false)
+    @JoinColumn(name = "seed_id", referencedColumnName = "seed_id", foreignKey = @ForeignKey(name = "fk_tr_seed"), insertable = false, updatable = false)
+    public Seed seed;
+
+    @Column(name = "uploaded", nullable = false)
+    public long upload;
+
+    @Column(name = "downloaded", nullable = false)
+    public long download;
+
+    @Column(name = "upload_peak", nullable = false)
+    public long maxupload;
+
+    @Column(name = "download_peak", nullable = false)
+    public long maxdownload;
 }
\ No newline at end of file
diff --git a/src/main/java/object/TransportId.java b/src/main/java/object/TransportId.java
new file mode 100644
index 0000000..8e102d3
--- /dev/null
+++ b/src/main/java/object/TransportId.java
@@ -0,0 +1,38 @@
+package object;
+
+import java.io.Serializable;
+import java.util.Objects;
+
+public class TransportId implements Serializable {
+    private String taskid;
+    private String uploaduserid;
+    private String downloaduserid;
+
+    public TransportId() {}
+
+    public TransportId(String taskid, String uploaduserid, String downloaduserid) {
+        this.taskid = taskid;
+        this.uploaduserid = uploaduserid;
+        this.downloaduserid = downloaduserid;
+    }
+
+    public String getTaskid() { return taskid; }
+    public void setTaskid(String taskid) { this.taskid = taskid; }
+    public String getUploaduserid() { return uploaduserid; }
+    public void setUploaduserid(String uploaduserid) { this.uploaduserid = uploaduserid; }
+    public String getDownloaduserid() { return downloaduserid; }
+    public void setDownloaduserid(String downloaduserid) { this.downloaduserid = downloaduserid; }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+        TransportId that = (TransportId) o;
+        return Objects.equals(taskid, that.taskid) && Objects.equals(uploaduserid, that.uploaduserid) && Objects.equals(downloaduserid, that.downloaduserid);
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(taskid, uploaduserid, downloaduserid);
+    }
+}
\ No newline at end of file
diff --git a/src/main/java/object/User.java b/src/main/java/object/User.java
index b9d72a1..5e8dfaa 100644
--- a/src/main/java/object/User.java
+++ b/src/main/java/object/User.java
@@ -1,15 +1,43 @@
 package object;
 
+import javax.persistence.*;
+
+@Entity
+@Table(name = "User", uniqueConstraints = @UniqueConstraint(name = "uniq_email", columnNames = {"email"}))
+@IdClass(UserId.class)
 public class User {
+    @Id
+    @Column(name = "user_id", length = 36, nullable = false)
     public String userid;
+
+    @Column(name = "username", length = 100, nullable = false)
     public String username;
+
+    @Column(name = "password", length = 255, nullable = false)
     public String password;
+
+    @Column(name = "gender", nullable = false)
     public String sex;
+
+    @Transient
     public String age;
+
+    @Id
+    @Column(name = "email", length = 255, nullable = false)
     public String email;
+
+    @Column(name = "school")
     public String school;
+
+    @Column(name = "avatar_url")
     public String pictureurl;
+
+    @Column(name = "bio")
     public String profile;
+
+    @Column(name = "account_status", nullable = false)
     public boolean accountstate;
+
+    @Column(name = "invite_left", nullable = false)
     public int invitetimes;
 }
diff --git a/src/main/java/object/UserId.java b/src/main/java/object/UserId.java
new file mode 100644
index 0000000..c68ce68
--- /dev/null
+++ b/src/main/java/object/UserId.java
@@ -0,0 +1,36 @@
+package object;
+
+import java.io.Serializable;
+import java.util.Objects;
+
+public class UserId implements Serializable {
+    private String userid;
+    private String email;
+
+    public UserId() {}
+
+    public UserId(String userid, String email) {
+        this.userid = userid;
+        this.email = email;
+    }
+
+    // getters and setters
+    public String getUserid() { return userid; }
+    public void setUserid(String userid) { this.userid = userid; }
+
+    public String getEmail() { return email; }
+    public void setEmail(String email) { this.email = email; }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+        UserId userId = (UserId) o;
+        return Objects.equals(userid, userId.userid) && Objects.equals(email, userId.email);
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(userid, email);
+    }
+}
\ No newline at end of file
diff --git a/src/main/java/object/UserPT.java b/src/main/java/object/UserPT.java
index 0332640..db3703f 100644
--- a/src/main/java/object/UserPT.java
+++ b/src/main/java/object/UserPT.java
@@ -1,11 +1,41 @@
 package object;
 
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.ForeignKey;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.MapsId;
+import javax.persistence.OneToOne;
+import javax.persistence.Table;
+
+@Entity
+@Table(name = "UserPT")
 public class UserPT {
+    @Id
+    @Column(name = "user_id", length = 36, nullable = false)
     public String userid;
+
+    @OneToOne(optional = false)
+    @MapsId
+    @JoinColumn(name = "user_id", referencedColumnName = "user_id", foreignKey = @ForeignKey(name = "fk_pt_user"))
+    public User user;
+
+    @Column(name = "magic", nullable = false)
     public int magic;
-    public int upload;
-    public int download;
+
+    @Column(name = "uploaded", nullable = false)
+    public long upload;
+
+    @Column(name = "downloaded", nullable = false)
+    public long download;
+
+    @Column(name = "ratio", nullable = false, precision = 5, scale = 2)
     public double share;
+
+    @Column(name = "default_seed_path")
     public String farmurl;
-    public String viptime;
+
+    @Column(name = "vip_downloads", nullable = false)
+    public int viptime;
 }
