sql >> Databasteknik >  >> RDS >> Mysql

Spring, Hibernate, Blob lat lastning

Jag är förvirrad. Emmanuel Bernard skrev i ANN-418 den där @Lob är lata som standard (dvs. du behöver inte ens använda @Basic(fetch = FetchType.LAZY) anteckning).

Vissa användare rapporterar att en @Lob laddas långsamt fungerar inte med alla drivrutiner/databas .

Vissa användare rapporterar att det fungerar när man använder bytekodinstrumentering (javassit? cglib?).

Men jag kan inte hitta någon tydlig hänvisning till allt detta i dokumentationen.

I slutet, den rekommenderade lösningen är att använda en "falsk" en-till-en-mappning istället för egenskaper. Ta bort LOB-fälten från din befintliga klass, skapa nya klasser som refererar till samma tabell, samma primärnyckel och endast de nödvändiga LOB-fälten som egenskaper. Ange mappningarna som en-till-en, fetch="select", lazy="true". Så länge ditt överordnade objekt fortfarande är i din session bör du få precis vad du vill ha. (transponera bara detta till kommentarer).



  1. Hur man läser MySQL binära loggfiler (BinLog) med mysqlbinlog

  2. Rapportera SQLDIAG-prestandadata via RML Utilities Tool | SQL Server Performance Felsökning -7

  3. Introduktion till SQL-gruppering och sammanräkning

  4. Hur hittar man aktuell transaktionsnivå?