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

Spring, Hibernate, Blob lazy loading

Tôi bối rối. Emmanuel Bernard đã viết trong ANN-418 @Lob đó theo mặc định là lười biếng (tức là bạn thậm chí không cần sử dụng @Basic(fetch = FetchType.LAZY) chú thích).

Một số người dùng báo cáo rằng tải chậm @Lob không hoạt động với tất cả trình điều khiển / cơ sở dữ liệu .

Một số người dùng báo cáo rằng nó hoạt động khi sử dụng thiết bị bytecode (javassit? cglib?).

Nhưng tôi không thể tìm thấy bất kỳ tài liệu tham khảo rõ ràng nào về tất cả những điều này trong tài liệu.

Cuối cùng, giải pháp được đề xuất là sử dụng ánh xạ một-một "giả" thay vì các thuộc tính. Xóa các trường LOB khỏi lớp hiện có của bạn, tạo các lớp mới tham chiếu đến cùng một bảng, cùng một khóa chính và chỉ các trường LOB cần thiết làm thuộc tính. Chỉ định các ánh xạ là một đối một, fetch ="select", lazy ="true". Miễn là đối tượng chính của bạn vẫn còn trong phiên của bạn, bạn sẽ có được chính xác những gì bạn muốn. (chỉ cần chuyển đoạn này thành chú thích).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ví dụ về CURTIME () - MySQL

  2. Nâng cao tiêu chuẩn về quản lý MySQL, MariaDB, PostgreSQL &MongoDB

  3. JSON_SET () so với JSON_INSERT () so với JSON_REPLACE () trong MySQL:Sự khác biệt là gì?

  4. Cách chọn N dòng hàng đầu cho mỗi nhóm trong MySQL

  5. Cách kết nối nhiều cơ sở dữ liệu trong PHP, MYSQLi &PDO