diff --git a/src/main/java/entity/SeedHash.java b/src/main/java/entity/SeedHash.java
new file mode 100644
index 0000000..0ca07ab
--- /dev/null
+++ b/src/main/java/entity/SeedHash.java
@@ -0,0 +1,19 @@
+package entity;
+
+import javax.persistence.*;
+
+@Entity
+@Table(name = "SeedHash")
+public class SeedHash {
+    @Id
+    @Column(name = "seed_id", length = 64)
+    public String seedId;
+
+    @Column(name = "info_hash", length = 40, nullable = false)
+    public String infoHash;
+
+    // optional back‐ref
+    @ManyToOne
+    @JoinColumn(name = "seed_id", insertable = false, updatable = false)
+    public Seed seed;
+}
diff --git a/src/main/java/entity/TransRecord.java b/src/main/java/entity/TransRecord.java
index cf7ac7f..f19155e 100644
--- a/src/main/java/entity/TransRecord.java
+++ b/src/main/java/entity/TransRecord.java
@@ -4,51 +4,55 @@
 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)
+    @Column(name = "uploader_id", length = 36, nullable = true)
     public String uploaduserid;
 
-    @ManyToOne(optional = false)
+    @ManyToOne(optional = true)
     @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)
+    @Column(name = "downloader_id", length = 36, nullable = true)
     public String downloaduserid;
 
-    @ManyToOne(optional = false)
+    @ManyToOne(optional = true)
     @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)
+    @Column(name = "seed_id", length = 64, nullable = true)
     public String seedid;
 
-    @ManyToOne(optional = false)
+    @ManyToOne(optional = true)
     @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 = "uploaded", nullable = true)
+    public Long upload = 0L;
 
-    @Column(name = "downloaded", nullable = false)
-    public long download;
+    @Column(name = "downloaded", nullable = true)
+    public Long download = 0L;
 
-    @Column(name = "upload_peak", nullable = false)
-    public long maxupload;
+    @Column(name = "upload_peak", nullable = true)
+    public Long maxupload = 0L;
 
-    @Column(name = "download_peak", nullable = false)
-    public long maxdownload;
+    @Column(name = "download_peak", nullable = true)
+    public Long maxdownload = 0L;
+    
+    // 默认构造函数，确保字段初始化
+    public TransRecord() {
+        this.upload = 0L;
+        this.download = 0L;
+        this.maxupload = 0L;
+        this.maxdownload = 0L;
+    }
 }
\ No newline at end of file
