用Spring调用存储过程JPA 2.1 Repository

时间:2015-05-14 17:59:06

标签: java spring hibernate jpa spring-data-jpa

我正在尝试在MySQL调用中调用存储过程:“searchContext”。

我尝试了解决方案:herehere

但是如何获得EntityManager参考?如果我正在使用这样的JPA存储库:

public interface ActiveContextRepository extends JpaRepository<ActiveContext, Long> {
    ActiveContext findByIdUser(Integer idUser);     
}

当我像这样使用EntityManager时,我得到了空指针:

public class ContextService {
    @PersistenceContext
    protected EntityManager entityManager;

    public EntityManager getEntityManager() {
        return entityManager;
    }

    public Integer getContext(Integer idUser, String date, Double longitude, Double latitude){
             StoredProcedureQuery storedProcedure = entityManager.createStoredProcedureQuery("searchContext");
}

或者像这样:

public class ContextService {

    @Autowired EntityManager entityManager;

    public Integer getContext(Integer idUser, String date, Double longitude, Double latitude){
                 StoredProcedureQuery storedProcedure = entityManager.createStoredProcedureQuery("searchContext");
}

我也试过这个解决方案:here  但预编译器在Jpa存储库上给出了错误:

  

“无效的派生查询!找不到类型的属性搜索   ActiveContext“

非常感谢!

1 个答案:

答案 0 :(得分:0)

我已经解决了这个问题。我正在制作一个具有新实体管理器的类的“new()”... nie注入“autowire”并且bean在application-config中声明谢谢