Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Kunci level tabel di Hibernate

"Pilih ... untuk pembaruan" didukung di Hibernate melalui LockMode.UPGRADE yang dapat Anda atur, misalnya, NamedQuery .

Tetapi menggunakan penguncian baris tabel aplikasi/manual memiliki beberapa kelemahan (terutama ketika koneksi database terputus di tengah-tengah transaksi) dan prosedur pembaruan Anda dapat melakukannya tanpanya:

  • Mulai transaksi.
  • perbarui set tabel state='PENDING', server_id=1 where state='IN PROGRESS';
  • Melakukan transaksi
  • pilih dari tabel di mana state='PENDING' dan server_id=1;
  • [catatan proses]

Setiap server harus memiliki nomor unik agar ini berfungsi, tetapi akan lebih sedikit kesalahan dan Anda membiarkan DBMS melakukan apa yang seharusnya menjadi keahliannya:isolasi (lihat ACID ).




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menggunakan LAST_INSERT_ID() dalam sisipan multi baris

  2. Bagaimana cara membuat tautan permanen yang didorong oleh basis data?

  3. MySQL memotong teks dengan elipsis

  4. Buat objek Tanggal di PHP untuk tanggal sebelum 1970 dalam format tertentu

  5. mendeteksi kesalahan mysql tanpa menjalankannya