domenica 11 marzo 2012

JPA FETCH JOIN

Nelle query con JPA si utilizza questa clausola per forzare l' EAGER LOADING delle Entity associate nella query.
Ad esempio, supponiamo di avere questa situazione:

@Entity
public class Presentation
{
........
@ManyToOne
private Student presenter;
......

}


@Entity
public class Student
{
 ......
private int score;
@OneToMany(cascade=CascadeType.ALL,fetch=LAZY,mappedBy="presenter")
private Collection <Presentation> presentations;

}

Se in una sola query vogliamo tirare fuori tutti gli studenti assieme alle loro presentazioni allora scriveremo:

SELECT s from Student s left join fetch s.presentations;

Nessun commento:

Posta un commento