Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » EclipseLink » lazy loading problem
lazy loading problem [message #755294] Mon, 07 November 2011 18:39
George Castrey is currently offline George Castrey
Messages: 4
Registered: November 2011
Junior Member
While trying to do some tests on lazy loading, to check if i'm understanding it well, i got totally confused.

Here's the entities i'm using on my test:

@Entity
public class Family {
	@Id
	@SequenceGenerator(name="Family_SEQ")
	@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="Family_SEQ")
	private int id;
	
	
	@OneToMany(mappedBy="family", fetch=FetchType.LAZY)
	private Set<Person> members;
	
	//getters & setters
	
	public String toString(){
		String s="";
		for(Person p:getMembers()){
			s+=p.getFirstName();
		}
		return s;
	}
}



@Entity
public class Person implements Comparable<Person>{
	@Id
	@SequenceGenerator(name="Person_SEQ")
	@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="Person_SEQ")
	private int id;
	
	private String firstName;
	private String lastName;
	
	@ManyToOne
	private Family family;
	
	//getters &setters
}


this is my main method :

public static void main(String[] args) {
		factory = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT_NAME);
		em = factory.createEntityManager();
		
		Query q = em.createQuery("select f from Family f");
		List<Family> families= q.getResultList();
		
		em.clear();
		em.close();
		factory.close();
		
		for(Family f:families){
			System.out.println(f);
		}
}


What i understood from lazy loading, is that if an attribute is marked to be fetched lazily, and doesn't get accessed while it's managed, it won't be loaded in memory and any attempt to access it later won't work. Now what confuses me is that the test described above doesn't have any problem when accessing the lazy members attribute through the detached Family list, even after closing the EM and the EMF ! ... Is that normal? Am-i miss-understanding the lazy loading concept?

Note : I'm using a J2SE environment with an embedded DB.

Thanks in Advance
George
Previous Topic:Compare two EntityManagerFactories for having PersistenceUnits with identical connection attributes
Next Topic:Strange cache behaviour after clear
Goto Forum:
  


Current Time: Sun Apr 20 19:42:30 EDT 2014

Powered by FUDForum. Page generated in 0.02864 seconds