Salut,

Je débute avec hibernate, j'ai déjà bien avancé mais je me heurte a des problèmes (je sépare en plusieurs posts).

Hibernate ne précharge rien et fait toutes ces opérations à chaque opération (load, saveOrUpdate, delete etc...). Je vois les requêtes en show_sql=true qui passent pour chaque opération (comme ci-dessous)

J’ai tenté de mettre lazy=false et fetch=join puis fetch=select sur toutes mes relations one-to-many
=> out of memory error ^^


Avec la méthode join, il tente de faire une requête assez grosse sur 10 tables
Avec la méthode select il tente de des milliers de select

Dans tous les cas, ma base fait pas plus de 80Mo, j’ai du mal à comprendre pourquoi mon pc est monté a 1.3 Go de mémoire occupé…


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
<set name="characterses" inverse="true"  lazy="false" fetch="join" cascade="all-delete-orphan">
            <key>
                <column name="account_name" length="45">
                    <comment></comment>
                </column>
            </key>
            <one-to-many class="net.sf.l2j.loginserver.beans.Characters" />
        </set>
Quelles sont les meilleures stratégies de chargement de données ?
Est-ce que hibernate est bien capable comme je l’avais cru de garder les données dans un cache mémoire ?
C’est quoi les caches de hibernate et a quoi correspondent-ils ? Premier niveau, second niveau etc… ?