Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Giao dịch mùa xuân và khôi phục trên nhiều bảng

Đang cập nhật câu trả lời của tôi:

  1. Bạn muốn phương thức "lưu Báo giá công khai (Trích dẫn trích dẫn)" của mình để được giao dịch.
  2. khi phương thức này được gọi ... giao dịch bắt đầu trong TransactionInterceptor và từ proxy "lưu Trích dẫn công cộng (Trích dẫn trích dẫn)" được gọi ra
  3. Dòng "quoteLineDao.delete (new Long (44));" hoạt động tốt
  4. Dòng "System.out.println (" °. hoạt động tốt
  5. Dòng "quoteDao.save (quote);" đưa ra ngoại lệ vi phạm ràng buộc. Giao dịch được đánh dấu là khôi phục
  6. bạn đang nắm bắt ngoại lệ này và sử dụng nó và không truyền bá ngoại lệ
  7. phương thức "public Quote save (Quote quote)" sẽ trả về null vì dòng "return null;"
  8. Giờ đây, mã tiếp cận bộ đánh chặn giao dịch và vì không có ngoại lệ nào ở bộ đánh chặn này, nó cố gắng thực hiện nhưng giao dịch đã được đánh dấu là khôi phục và do đó không thành công.

Giải pháp:- Bạn không được sử dụng ngoại lệ và thay vào đó tuyên truyền ngoại lệ vì nhu cầu giao dịch của bạn.

Thay đổi thành sau đây. đã thêm câu lệnh ném.

try{
      quoteLineDao.delete(new Long(44));
      System.out.println("°°°°°°°°°°°°°°°°°°Line 44 deleted");
      return  quoteDao.save(quote); 
} catch(Exception e){
      Logger.getLogger(QuoteService.class).log(Logger.Level.ERROR, e);
      throw e;
}

Giải thích từng bước có sẵn trong liên kết này: Không thể thực hiện giao dịch JPA:Giao dịch được đánh dấu là rollbackOnly




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Thêm cột mới vào bảng kết quả và kết hợp

  2. Sự khác biệt giữa bảng mã utf8mb4 và utf8 trong MySQL là gì?

  3. sql tham gia dưới dạng biểu đồ venn

  4. Truy vấn MySQL rất cụ thể mà tôi muốn cải thiện

  5. đối sánh toàn bộ các từ trong khi bỏ qua các phụ tố của từ bằng cách sử dụng regex