Hibernate ManyToOne с FetchType.LAZY без получения ленивых

Я использую Hibernate с spring.

У меня есть такой класс-модель.


@Entity
@Table(name = "forumtopic")
public final class Forumtopic extends AbstractUserTracking implements
    java.io.Serializable {

/**SNIP **/

    private Forumcategory forumcategory;

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "FkForumcategoryId", nullable = false)
    public Forumcategory getForumcategory() {
        return this.forumcategory;
    }

    public void setForumcategory(final Forumcategory forumcategory) {
        this.forumcategory = forumcategory;
    }
}

В целом это работает, но Категория загружается не лениво, а быстро после загрузки ForumEntry.

 Гибернация:
 Выбрать
 forumtopic0_.PkId как PkId19_0_,
 forumtopic0_.CreateDate как CreateDate19_0_,
 forumtopic0_.FkCreateUserId как FkCreate3_19_0_,
 forumtopic0_.FkLastUserId как FkLastUs4_19_0_,
 forumtopic0_.LastChange как LastChange19_0_,
 forumtopic0_.FkForumcategoryId as FkForum10_19_0_,
 forumtopic0_.PublishCategory как PublishC6_19_0_,
 forumtopic0_.State как State19_0_,
 forumtopic0_.Text as Text19_0_,
 forumtopic0_.Topic как Topic19_0_,
 forumtopic0_.FkTpUserId как FkTpUserId19_0_ 
 от
 forumtopic forumtopic0_ 
 где
 forumtopic0_.PkId =?
Спящий режим: 
 Выбрать
 forumcateg0_.PkId как PkId17_0_,
 forumcateg0_.CreateDate как CreateDate17_0_,
 forumcateg0_. Имя как Имя17_0_,
 forumcateg0_.FkRequestId как FkReques4_17_0_,
 forumcateg0_.FkTpUserId как FkTpUserId17_0_ 
 от
 forumcategory forumcateg0_ 
 где
 forumcateg0_.PkId =?

Несмотря на то, что получатель не был вызван, ForumCategory загружается сразу после ForumTopic.

Эта проблема появляется во всех моих @ ManyToOne-ассоциациях. Однако @OneToMany загружаются лениво.

Я использую maven2 для сборки. Это мои зависимости.

  <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring</artifactId>
    <version>2.5.6</version>
  </dependency>


  <dependency>
    <groupId>org.hibernate</groupId> 
    <artifactId>hibernate-core</artifactId> 
    <version>3.3.1.GA</version> 
  </dependency>
  <dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>ejb3-persistence</artifactId>
    <version>1.0.2.GA</version>
  </dependency>
  <dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-annotations</artifactId>
    <type>jar</type>
    <version>3.4.0.GA</version>
  </dependency>
  <dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-entitymanager</artifactId>
    <type>jar</type>
    <version>3.4.0.GA</version>
  </dependency>
  <dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-search</artifactId>
    <version>3.1.0.GA</version>
</dependency>

Кто-нибудь, пожалуйста, помогите мне понять, что происходит?

10
задан KarlsFriend 8 April 2011 в 11:20
поделиться