Featured post
Hibernate foreign key relation - list() makes unnecessary sql queries - setMaxResults ignored -
first of all, first time use hibernate questions might seem naive.
i have 2 tables, dsjobs , dsevents. events has foreign key relationship on dsjobs table (eid column in dsjobs table corresponds id column of dsevents table).
i have creted mapping anotations, care unilateral relation, have 'dsevents' property in dsjobs table annotated @manytoone:
@entity @table(name="dsjobs") public class dsjobs implements java.io.serializable { ... private dsevents dsevents; ... @id @column(name="jid", unique=true, nullable=false) public long getjid() { return this.jid; } public void setjid(long jid) { this.jid = jid; } @manytoone @joincolumn(name="eid") public dsevents getdsevents() { return this.dsevents; } public void setdsevents(dsevents dsevents) { this.dsevents = dsevents; } .... }
i want retrieve list of jobs records databse , restricte them setfirstresult , setmaxresults. call make:
return (arraylist<dsjobs>) this.sessionfactory.getcurrentsession().createquery("from dsjobs log").setfirstresult(start).setmaxresults(rows).list();
this code returns arraylist of dsjobs object , inside every dsjobs object there dsevents object, correctly instantiated.
my issues two:
when see hql executed there unnecesery select calls database, 1 every dsjobs record. each dsjobs record, there select in dsevents coresponding event, event id. unacceptable performance, since simple jdbc can data need inner join select stament. doing wrong, please let me know , if know how should proceed.
the setfirstresult , setmaxresults seem completeley ignored hibernate, records database. how can fix that?
i appreciate help.
thank in advance.
when see hql executed there unnecesery select calls database, 1 every dsjobs record.
yes, dreaded n+1 select problem. happens when enforce ri constraint on relationship (one-to-ones, example, or unique constraints). mapping you're showing doesn't appear have these problems, makes me think you're not showing actual mapping causing trouble. please post actual code, not generalized, abbreviated version of it.
the setfirstresult , setmaxresults seem completeley ignored hibernate, records database. how can fix that?
this code fine. means you're not showing actual code that's causing trouble.
- Get link
- X
- Other Apps
Comments
Post a Comment