diff --git a/src/main/java/api/ApiController.java b/src/main/java/api/ApiController.java
index 2c37f8b..7566108 100644
--- a/src/main/java/api/ApiController.java
+++ b/src/main/java/api/ApiController.java
@@ -1321,7 +1321,6 @@
             }
             
             if (file.getSize() > 100 * 1024 * 1024) {
-                System.out.println("File size exceeds limit: " + file.getSize() + " bytes");
                 return new ResponseEntity<>(3, HttpStatus.PAYLOAD_TOO_LARGE); // 返回 3 表示文件过大
             }
             
@@ -1416,6 +1415,7 @@
         @RequestBody String requestBody
     ) {
         try {
+            System.out.println("submitSeed called with requestBody: " + requestBody);
             com.fasterxml.jackson.databind.JsonNode jsonNode = mapper.readTree(requestBody);
             com.fasterxml.jackson.databind.JsonNode begidNode = jsonNode.get("begid");
             com.fasterxml.jackson.databind.JsonNode useridNode = jsonNode.get("userid");
@@ -1436,6 +1436,7 @@
             }
 
             int ret = db1.SubmitBegSeed(begid, seedid, userid);
+            System.out.println("submitSeed result: " + ret);
             if (ret == 0) {
                 return new ResponseEntity<>(0, HttpStatus.OK); // 返回 0 表示成功
             } else if (ret == 1) {
diff --git a/src/main/java/database/Database1.java b/src/main/java/database/Database1.java
index 26ddc29..934a6c5 100644
--- a/src/main/java/database/Database1.java
+++ b/src/main/java/database/Database1.java
@@ -601,6 +601,9 @@
             UserStar userStar = new UserStar();
             userStar.userid = userid;
             userStar.seedid = seedid;
+            userStar.seed = seed; // 设置关联的种子对象
+            userStar.user = user; // 设置关联的用户对象
+            userStar.createdAt = new Date(); // 设置创建时间
             entitymanager.getTransaction().begin();
             entitymanager.persist(userStar);
             entitymanager.getTransaction().commit();
@@ -1927,6 +1930,9 @@
                     .fetchOne();
 
             submitSeed = new SubmitSeed();
+            // 设置复合主键
+            submitSeed.id = new SubmitSeedId(begid, seed.seedid);
+
             submitSeed.begInfo = begInfo;
             submitSeed.seed = seed;
             submitSeed.votes = 0; // 初始投票数为0
@@ -1935,18 +1941,13 @@
                 return 1;
             }
 
-            entitymanager.getTransaction().begin();
             entitymanager.persist(submitSeed);
-            entitymanager.getTransaction().commit();
+            tx.commit();
 
-            // 创建提交记录
-            entitymanager.createNativeQuery("INSERT INTO SubmitSeed (beg_id, seed_id, votes) VALUES (?, ?, 0)")
-                    .setParameter(1, begid)
-                    .setParameter(2, seed.seedid)
-                    .executeUpdate();
             return 0;
 
         } catch (Exception e) {
+            e.printStackTrace();
             if (tx.isActive()) {
                 tx.rollback();
             }
