Как создать NativeQuery с помощью jpaTemplate - PullRequest
0 голосов
/ 07 февраля 2012

Как использовать createNativeQuery с использованием jpatemplate, потому что jpatemplate.getEntityManager () возвращает нуль:

public class GenericDAO<T, PK extends Serializable> {
    @Autowired
    public void setEntityManagerFactory(EntityManagerFactory emf) {
        this.jpaTemplate = new JpaTemplate(emf);    
    }
}

или мы можем использовать и entitymanager, и jpaTemplate? как:

public class GenericDAO<T, PK extends Serializable> {
    @Autowired
    public void setEntityManagerFactory(EntityManagerFactory emf) {
        this.jpaTemplate = new JpaTemplate(emf);    
}
    @PersistenceContext
    public void setEntityManager(EntityManager entityManager) {
        this.entityManager = entityManager;
    }

    public void save(obj){
        this.jpaTemplate.presist(Object obj)
    }

    public List<?> createNativeQuery(String query){
        entityManager.createNativeQuery(query) ;
    }
  }

1 Ответ

2 голосов
/ 07 февраля 2012

Чтобы получить доступ к диспетчеру сущностей, вы должны использовать метод execute JpaTemplate и поместить свой код в обратный вызов.JpaTemplate дает вам EM.Вы не получите его из JpaTemplate:

return jpaTemplate.execute(new JpaCalback<List<?>>() {
    @Override
    public List<?> doInJpa(EntityManager em) {
        // your code here.
    }
});

Обратите внимание, что этот класс устарел.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...