J'ai une classe Person:
@Entity
public class Person {
@Id
@GeneratedValue
private Long id;
@ManyToMany(fetch = FetchType.LAZY)
private List<Role> roles;
// etc
}
Avec une relation plusieurs-à-plusieurs qui est paresseuse.
Dans mon contrôleur, j'ai
@Controller
@RequestMapping("/person")
public class PersonController {
@Autowired
PersonRepository personRepository;
@RequestMapping("/get")
public @ResponseBody Person getPerson() {
Person person = personRepository.findOne(1L);
return person;
}
}
Et le PersonRepository n'est que ce code, écrit selon ce guide
public interface PersonRepository extends JpaRepository<Person, Long> {
}
Cependant, dans ce contrôleur, j'ai réellement besoin des données paresseuses. Comment puis-je déclencher son chargement?
Essayer d'y accéder échouera avec
échec de l'initialisation paresseuse d'une collection de rôles: no.dusken.momus.model.Person.roles, impossible d'initialiser le proxy - pas de session
ou d'autres exceptions selon ce que j'essaye.
Ma description xml , en cas de besoin.
Merci.
Person
objet en fonction d'un paramètre? En celaQuery
, incluez lafetch
clause et chargez leRoles
trop pour la personne.