1 Reply Latest reply on Apr 3, 2008 4:56 AM by mars1412

    @OneToOne and SELECT (1+n) problem

    lupson Newbie

      Lots of searching in various resources havn't solved this issue for me so here goes..:

      Environment:
      JBoss 4.0.5.GA
      Seam 1.2.1
      Oracle 10 running ojdbc14.jar

      Basically, I have two entities, let's call them PERSON and PERSON_METADATA. They have a bi-directional @OneToOne relation.

      Problem: I have 1000 PERSONs and I issue a JPA/HQL query such as: entityManager.createQuery("SELECT p FROM Person p").getResultList();

      Looking at the SQL debug output in the log, this simple JPA query performs 1001 SELECTs instead of performing a JOIN (or LEFT JOIN if optional=true).

      I've fiddled around with various FetchType.EAGER/LAZY, @LazyToOne, @Fetch(FetchMode.EAGER) etc. settings, but still I always get this 1+n number of queries, regardless of how I annotate the @OneToOne relation.

      Any ideas on how to get JPA/Hibernate to EAGER load this using a single JOIN?

      Thanks!