Inyección de EntityManager - NullPointerException
En mi aplicación Spring + JPA / Hibernate + Wicket, tengo un bean QueryBuilder que quiero usar en uno de mis DAO que genera una consulta escrita con la ayuda de Criteria API:
@Service(value="inboxQueryBuilder")
public class InboxQueryBuilder {
@PersistenceContext
EntityManager em;
CriteriaBuilder cb;
public InboxQueryBuilder() {
cb = em.getCriteriaBuilder();
}
public TypedQuery<App> getQueryForApps(AppSearchObject aso) {
...
}
...
}
Sin embargo, cuando ejecuto la aplicación, obtengo una excepción de puntero nulo para la línea:
cb = em.getCriteriaBuilder();
es decir, el EntityManager no se inyecta. ¿Sabes por qué?
Además, ¿es este uso correcto y seguro para subprocesos o debería crear una instancia de mi InboxQueryBuilder para cada consulta? En ese caso, ¿debería también inyectar el EntityManager o debería pasarlo como un parámetro de construcción (el InboxQueryBuilder se instanciaría para cada consulta en el DAO que tiene una instancia inyectada de EntityManager)?