คำถามติดแท็ก transactions

ชุดปฏิบัติการที่สัมพันธ์กันซึ่งทุกคนต้องประสบความสำเร็จเพื่อให้การดำเนินการใด ๆ ประสบความสำเร็จ ความล้มเหลวของการดำเนินการใด ๆ ส่งผลให้เกิดการย้อนกลับของการดำเนินการทั้งหมดในธุรกรรม

8
ธุรกรรมที่ทำเครื่องหมายว่าย้อนกลับเท่านั้น: ฉันจะหาสาเหตุได้อย่างไร
ฉันมีปัญหาในการทำธุรกรรมภายในวิธี @Transactional ของฉัน: methodA() { methodB() } @Transactional methodB() { ... em.persist(); ... em.flush(); log("OK"); } เมื่อฉันเรียก methodB () จาก methodA () เมธอดจะผ่านไปได้สำเร็จและฉันสามารถเห็น "ตกลง" ในบันทึกของฉัน แต่แล้วฉันก็เข้าใจ Could not commit JPA transaction; nested exception is javax.persistence.RollbackException: Transaction marked as rollbackOnly org.springframework.transaction.TransactionSystemException: Could not commit JPA transaction; nested exception is javax.persistence.RollbackException: Transaction …


1
DatabaseBeginTransaction เทียบกับ Transaction.TransactionScope
อะไรคือความแตกต่างระหว่างSystem.Transactions.TransactionScopeEF6 Database.BeginTransaction? ใครช่วยยกตัวอย่างเล็กน้อยหรือแค่อธิบายว่าควรใช้อันไหนเมื่อมีความแตกต่างที่ชัดเจน PS: ในโครงการของฉันฉันใช้ EF6 ฉันได้อ่านเอกสารแล้ว แต่ก็ไม่ได้ช่วยอะไรมาก ค้นหาตัวอย่างด้วย แต่ค่อนข้างใช้SqlConnection.BeginTransactionและตอนนี้ MS ได้เปิดตัวสิ่งใหม่นี้Database.BeginTransactionใน EF6

3
ธุรกรรมฐานข้อมูล Android
ฉันได้สร้างฐานข้อมูลแล้ว ฉันต้องการทำรายการ SaveCustomer()มีคำสั่งมากกว่าหนึ่งรายการเพื่อแทรกระเบียนลงในCustomer, CustomerControl, Profile, Paymentตารางในขณะนั้น เมื่อผู้ใช้เรียกใช้ SaveCustomer()method ข้อมูลนั้นจะไปที่ 4 ตารางเหล่านี้ดังนั้นฉันจะทำธุรกรรมได้อย่างไร? หากการแทรกตารางล้มเหลวจำเป็นต้องย้อนกลับทุกอย่าง ตัวอย่างเช่นเมื่อตารางที่ 3 แทรกระเบียนฉันได้รับข้อผิดพลาดจากนั้นจำเป็นต้องย้อนกลับระเบียนแทรกของตารางสองรายการก่อนหน้านี้ด้วย ดูรหัสของฉัน: public void saveCustomer(){ DBAdapter dbAdapter = DBAdapter.getDBAdapterInstance(RetailerOrderKeyActivity.this); dbAdapter.openDataBase(); ContentValues initialValues = new ContentValues(); initialValues.put("CustomerName",customer.getName()); initialValues.put("Address",customer.getAddress()); initialValues.put("CustomerPID",strPID); initialValues.put("Date",strDateOnly); long n = dbAdapter.insertRecordsInDB("Customer", null, initialValues); } ในทำนองเดียวกันคำสั่งอื่น ๆ ก็มีเช่นกัน รหัส DBAdpter คือ: public long insertRecordsInDB(String tableName, …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.