Używanie leniwych do właściwości w Hibernacja
Leniwy atrybut znacznika właściwości w hibernacji pozwala leniwie załadować właściwość zgodnie z linkiem:http://docs.jboss.org/hibernate/orm/3.3/reference/en-US/html/mapping.html#mapping-declaration-property
lazy (opcjonalnie - domyślnie false): określa, że ta właściwość powinna być pobierana leniwie, gdy po raz pierwszy uzyskuje się dostęp do zmiennej instancji. Wymaga oprzyrządowania kodu bajtowego w czasie.
Ale kiedy próbowałem ustawić lazy = true dla jednej z moich właściwości, nie ładuje go leniwie w tym przykładzie:
Plik mapowania hibernacji:
<hibernate-mapping package="org.hibernate.tutorial.domain">
<class name="Event" table="EVENTS" select-before-update="true">
<id name="id" column="EVENT_ID">
<generator class="native" />
</id>
<property name="date" type="timestamp" column="EVENT_DATE" />
<property name="title" lazy="true"/>
<set name="participants" table="PERSON_EVENT" inverse="true">
<key column="EVENT_ID" />
<many-to-many column="PERSON_ID" class="Person" />
</set>
</class>
</hibernate-mapping>
Program:
public static void main(String[] args) {
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
Event event = (Event) session.get(Event.class, 135L);
session.getTransaction().commit();
System.out.println(event);
HibernateUtil.getSessionFactory().close();
}
Zapytanie wygenerowane przez hibernację:
Hibernate: select event0_.EVENT_ID as EVENT1_0_0_, event0_.EVENT_DATE as EVENT2_0_0_, event0_.title as title0_0_ from EVENTS event0_ where event0_.EVENT_ID=?
Pomóż mi zrozumieć, dlaczego leniwy nie działa w tym przypadku?