我现在感觉很愚蠢,因为我对以下代码有疑问:
StoredProcedureQuery spQuery = entityManager.createStoredProcedureQuery("MY_PROCEDURE", MagazineEntity.class);
spQuery.registerStoredProcedureParameter("ID", Integer.class, ParameterMode.PARAM_INOUT);
我收到以下编译器错误:
StoredProcedureQuery 类型中的方法 registerStoredProcedureParameter(String, Class, ParameterMode) 不适用于参数 (String, Class< Integer >, ParameterMode)
我正在使用 jdk1.8.0_201 和 javax.persistence.api 2.2:
<dependency>
<groupId>javax.persistence</groupId>
<artifactId>javax.persistence-api</artifactId>
<version>2.2</version>
</dependency>
对象 entityManager 通过以下方式初始化:
@PersistenceContext
EntityManager entityManager;
在@Repository 类中。
我无法理解:我希望该方法接受 Integer.class 作为类型,但它不能将 Class< Integer > 作为 Class 参数。我也尝试过使用 String.class, new Integer(0), int.class 但这些也不起作用。
有类似的问题或想法,什么可能导致这种意外行为?