Új hozzászólás Aktív témák

  • floatr

    veterán

    válasz jetarko #6225 üzenetére

    Pedig nekem is van hasonló mapping pár, és nem látok benne hibát. Kipróbáltam a saját alkalmazásban átírni a collection-t EAGER-re, de akkor sem csinálta ezt. Azt még esetleg megpróbálhatnád, hogy egy teszt erejéig kiszeded az EAGER-t, és a korábban bemásolt kódrészletet kibővíted így:

    public Team getTeamById(int id) {
    Session session = this.sessionFactory.getCurrentSession();
    Team t = (Team) session.get(Team.class, new Integer(id));

    // ha lazy collection, akkor így betölti az elemeit egy második query-ben
    t.getDrivers().size();

    return t;
    }

    Még esetleg azt tudom elképzelni, hogy dialect-függő a dolog. Én eddig mssql, postres és derby adatbázisokkal használtam, de csak elcseszett join-ok esetében találkoztam hasonlóval.

    Annyit még érdemes megfontolni, hogy az EAGER típusú kapcsolatok nagyon oda tudnak vágni az alkalmazásnak, ezért is alapértelmezett a LAZY. Én mindenhol ezt használom, és inkább egy OpenSessionInViewFilter-t teszek a web.xml-be. Oda akkor viszont már kelleni fog tranzakció is meg egyebek.

Új hozzászólás Aktív témák