![](/img/trans.png)
[英]How to save data obtained iby a spring-boot dropdown in the database?
[英]How to save multiple data to database in spring boot
我嘗試使用 for 循環將多個數據保存到數據庫,但數據庫只顯示最后一個值。 我無法弄清楚哪個部分是錯誤的。
這是我的 model
@Entity
@Table(name="receipt_details")
public class ReceiptDetails {
@Id
@Column(name="id")
private int id;
@Column(name="ordered_food")
private String ordered_food;
@Column(name="quantity")
private int quantity;
@Column(name="price")
private double price;
存儲庫
import org.springframework.data.jpa.repository.JpaRepository;
import com.example.fyp6.model.ReceiptDetails;
public interface ReceiptDetailsRepository extends JpaRepository<ReceiptDetails, Integer> {
}
服務
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.example.fyp6.model.ReceiptDetails;
import com.example.fyp6.repo.ReceiptDetailsRepository;
@Service
public class ReceiptDetailsServiceImpl implements ReceiptDetailsService {
@Autowired
private ReceiptDetailsRepository receiptDetailsRepo;
@Override
public ReceiptDetails save(ReceiptDetails receiptDetails) {
return receiptDetailsRepo.save(receiptDetails);
}
}
Controller
//Save invoice details
List<Item> cart = (List<Item>) session.getAttribute("cart");
for(Item item : cart) {
ReceiptDetails receiptDetails = new ReceiptDetails();
receiptDetails.setId(receipt.getReceipt_id());
receiptDetails.setPrice(item.getFood().getFood_price());
receiptDetails.setQuantity(item.getQuantity());
receiptDetails.setOrdered_food(item.getFood().getFood_name());
receiptDetailsService.save(receiptDetails);
}
我無法弄清楚哪個部分是錯誤的。
receiptDetails.setId(receipt.getReceipt_id());
這是問題所在。 您保存具有相同 ID 的所有實體。 因此數據庫中只顯示了 1 個
同意布格的回答。 嘗試使用自動生成的值來填充您的主鍵。 或者使用復合鍵使您的記錄獨一無二。
PS:您可以使用 saveAll() 代替 save()。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.