Bom dia galera
então… Uso Spring Data JPA.
Mas ele não me dá flexibilidade para queries dinamicas…
Então a parte dele resolvi fazer o seguinte:
Service, que tem o DAO INJETADO
@Service
@Transactional
public class GenericFilterService {
@Autowired
private GenericFilterDao genericFilterDao;
DAO que tem o EntityManager INJETADO
@Component
public class GenericFilterDao {
@PersistenceContext
private EntityManager entityManager;
public List<?> executeQuery(...){
Session hibernateSession = entityManager.unwrap(Session.class); //exception aqui
Criteria criteria = hibernateSession.createCriteria(entityClass);
}
Só para deixar claro, eis a exception:
java.lang.IllegalStateException: No transactional EntityManager available
at org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.invoke(SharedEntityManagerCreator.java:223)
at $Proxy49.unwrap(Unknown Source)
Então galera…
Fiz algo de errado?