2017-10-20 29 views
0

J'essaie d'interroger une base de données via une API de repos en utilisant jersey et spring boot jpa avec hibernate.spring boot + jpa + maillot n'a pas pu initialiser proxy - no Session

Ma méthode de commande:

public SomeValue doSomething(String param) { 

    MyEntity entity = myService.queryDB(param); 
    return conv.convertEntity(entity); 
} 

Mon service:

@Transactional 
public MyEntity queryDB(String param) { 
    return myRepo.findOne(param); 
} 

L'entité:

@Entity 
MyEntity { 

@Id 
@NotNull 
private String Id; 
@OneToMany(mappedBy="foreignKey", fetch = FetchType.LAZY) 
private Set<SomeOtherEntity> someOtherEntity; 

} 

J'ai même définir explicitement la propriété dans le application.yml:

open-in-view: true 

je reçois l'exception suivante:

failed to lazily initialize a collection of role: entitites.MyEntity.someOtherEntity, could not initialize proxy - no Session 

Pendant que je peux voir le débogage que la méthode preHandle de OpenEntityManagerInViewInterceptor de printemps est appelé après je fais l'appel au référentiel. Ne devrait-il pas être appelé avant?

Ce qui pourrait causer cette exception/ce comportement. Quel est le problème avec ma configuration?

Répondre

0

Il est le mode paresseux qui cause cette exception essayer d'éditer votre code et utiliser ceci:

@OneToMany(mappedBy="foreignKey", fetch = FetchType.EAGER) 
private Set<SomeOtherEntity> someOtherEntity;