[JPA] fetch Lazy qui ne fonctionne pas
Bonjour, j'ai un annuaire, chaque utilisateur s'inscrit et peut inscrire autant de site qu'il le souhaite.
J'ai donc les entité MappedSite et MappedUsers :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| @Entity
@Table(name = "site")
public class MappedSite extends MappedSuper implements Serializable {
[...]
@JoinColumn(name = "id_user", referencedColumnName = "id")
@ManyToOne(fetch = FetchType.LAZY)
private MappedUsers idUser;
[...]
}
@Entity
@Table(name = "users")
public class MappedUsers implements Serializable {
[...]
@OneToMany(fetch=FetchType.LAZY, cascade = CascadeType.ALL, mappedBy = "idUser")
private Collection<MappedSite> mappedSiteCollection;
[...]
} |
Sur ma page d'accueil je liste les derniers sites inscrit, je ne fais à aucun moment référence à l'utilisateur, je n'invoque pas getIdUsers
en gros j'utilise simplement un Criteria query avec une limit et un offset (qui est de 0 quand on charge la page)
je me suis mis en mode debug et j'ai vu énormément de requêtes uniques vers la table users du style :
Code:
1 2
| [EL Fine]: sql: 2019-05-21 03:26:47.653--ServerSession(1843021226)--Connection(1504957408)--Thread(Thread[http-nio-8443-exec-187,5,main])--SELECT ... FROM users WHERE (id = ?)
bind => [208] |
Alors que je n'utilise pas d'objet MappedUsers, nul part, et ça m'ennuie car ces requêtes sont inutile le Lazy Loading semble ne pas fonctionner ?
Merci pour votre aide.