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

Dữ liệu mùa xuân JPA + Bỏ qua Hibernate Các hàng đã khóa (PostgreSQL)

Mã của bạn là tốt. Tất cả những gì bạn cần nhớ là PESSIMISTIC_WRITE sử dụng SELECT …​ FOR UPDATE SKIP LOCKED trong Oracle và PostgreSQL 9.5 . Tôi cho rằng bạn có thể đã quên việc nói với JPA, rằng bạn nên sử dụng phiên bản Postgres mới hơn. Vì vậy, bạn có hai lựa chọn:

  • nói với JPA rằng bạn đang sử dụng PostgreSQL Dialect hỗ trợ SKIP LOCKED :
    spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQL10Dialect
    
    Sau đó, tôi nhận được đầu ra mong muốn:
    where
        subscripti0_.valid_until<=? 
    and subscripti0_.status='ACTIVE' 
    for update of subscripti0_1_ skip locked
    
    và rõ ràng, luồng đồng thời không thể tìm nạp các hàng bị khóa cho đến khi hoàn tất giao dịch.
  • sử dụng truy vấn gốc:
    SELECT * FROM objects o WHERE o.valid_until <= :validUntil FOR UPDATE SKIP LOCKED 
    


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Không thể chỉ sử dụng tên bảng PostgreSQL (quan hệ không tồn tại)

  2. Tính tuổi theo năm trong PostgreSQL

  3. Không thể kết nối với máy chủ PostgreSQL:không thể kết nối với máy chủ:Quyền bị từ chối

  4. Làm cách nào để bạn có thể kết nối những người dùng đang hoạt động với cơ sở dữ liệu postgreSQL thông qua SQL?

  5. Gỡ cài đặt hoàn toàn PostgreSQL 9.0.4 khỏi Mac OSX Lion?