Hibernate 如何使用jpaTemplate创建NativeQuery
如何使用jpatemplate使用createNativeQuery,因为jpatemplate.getEntityManager()返回null:Hibernate 如何使用jpaTemplate创建NativeQuery,hibernate,spring,jpa,Hibernate,Spring,Jpa,如何使用jpatemplate使用createNativeQuery,因为jpatemplate.getEntityManager()返回null: public class GenericDAO<T, PK extends Serializable> { @Autowired public void setEntityManagerFactory(EntityManagerFactory emf) { this.jpaTemplate = new J
public class GenericDAO<T, PK extends Serializable> {
@Autowired
public void setEntityManagerFactory(EntityManagerFactory emf) {
this.jpaTemplate = new JpaTemplate(emf);
}
}
公共类GenericDAO{
@自动连线
public void setEntityManagerFactory(EntityManagerFactory emf){
this.jpaTemplate=新的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) ;
}
}
公共类GenericDAO{
@自动连线
public void setEntityManagerFactory(EntityManagerFactory emf){
this.jpaTemplate=新的jpaTemplate(emf);
}
@持久上下文
公共无效设置EntityManager(EntityManager EntityManager){
this.entityManager=entityManager;
}
公共作废保存(obj){
this.jpaTemplate.presist(objectobj)
}
公共列表createNativeQuery(字符串查询){
entityManager.createNativeQuery(查询);
}
}
要访问实体管理器,应该使用JpaTemplate方法,并将代码放入回调中。JpaTemplate为您提供EM。您无法从JpaTemplate获得它:
return jpaTemplate.execute(new JpaCalback<List<?>>() {
@Override
public List<?> doInJpa(EntityManager em) {
// your code here.
}
});
返回jpaTemplate.execute(新的JpaCalback doInJpa(EntityManager em){
//你的代码在这里。
}
});
请注意,此类已被弃用。是否有新的JPATemplate替代api直接使用本机JPA api(EntityManager方法)。