Mysql
 sql >> база данни >  >> RDS >> Mysql

Spring, Hibernate, Blob мързеливо зареждане

Объркан съм. Еманюел Бернар написа в ANN-418 че @Lob са мързеливи по подразбиране (т.е. дори не е нужно да използвате @Basic(fetch = FetchType.LAZY) анотация).

Някои потребители съобщават за мързеливо зареждане на @Lob не работи с всички драйвери/база данни .

Някои потребители съобщават, че работи при използване на инструменти за байткод (javassit? cglib?).

Но не мога да намеря ясна справка за всичко това в документацията.

В края, препоръчителното решение е да се използва „фалшиво“ едно към едно съпоставяне вместо свойства. Премахнете LOB полетата от съществуващия си клас, създайте нови класове, отнасящи се до същата таблица, същия първичен ключ и само необходимите LOB полета като свойства. Посочете съпоставянията като едно към едно, fetch="select", lazy="true". Докато вашият родителски обект все още е във вашата сесия, трябва да получите точно това, което искате. (просто транспонирайте това в анотации).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Урок за MySQL Workbench – Изчерпателно ръководство за инструмента RDBMS

  2. PDO получава последния вмъкнат идентификатор

  3. ALTER TABLE в MySQL:Приятел или враг?

  4. ROW_NUMBER в SQL – Изберете Най-добър пример в SQL и SQL Server

  5. MySQL индексира ли автоматично колоните с външни ключове?