sql >> Databasteknik >  >> RDS >> Oracle

hibernate.jdbc.fetch_size eller @QueryHints(@javax.persistence.QueryHint(name=org.hibernate.fetchSize, value=10)) fungerar inte

standardstorleken för hämtning i oracle är redan 10 poster, så det är konstigt att du har problem med minnet när du lägger till det här tipset. Speciellt om 100 000 inte utgör ett problem.

Några saker jag skulle göra för att lokalisera problemet och ge en lösning:

Barebone testa din kod

Testa koden som är ansvarig för dina frågor (förmodligen din DAO) med ett minimum av omkostnader. Jag misstänker att undantaget i minnet är mer sannolikt beror på bearbetningen av databasresultaten och inte den faktiska frågan + fetchsize.

Så ändra din kod tillfälligt för att helt enkelt utföra frågan men gör ingen mappning eller annan bearbetning på den. Se bara till att det är klart.

Om detta verkar "lösa" ditt problem, kanske du har utfört en del på den data du tar emot som svämmar över ditt minne.

Uppdatera dina beroenden

Om du använder maven (eller gradle, eller något annat byggverktyg) skulle jag föreslå att du uppdaterar alla uppdateringar åtminstone till den senaste mindre versionen (till exempel 1.2.3 -> 1.2.9) detta bör inte gå sönder något men kan fixa några buggar.

Gör inte slumpmässigt med hämtningsstorlekar

Kolla in dessa svar för att bestämma vilken bra apportstorlek som kan vara för din situation.




  1. spring boot hibernate-fråga ogiltigt användarfel

  2. Ansluter till fjärrserver MySQL-problem

  3. Apache - MySQL Service upptäckt med fel sökväg. / Portar som redan används

  4. Node.js ansluter via ssh