我收到一个错误
IllegalStateException:会话/EntityManager 已关闭
StoredProcedureQuery
与 Oracle 存储过程SYS_REFCURSOR
和.
使用 Spring Boot + spring-boot-starter-data-jpa
@Repository
public class HibernateTestingDao implements CommandLineRunner {
...
/**
* Conector con la base de datos
*/
@PersistenceContext
private EntityManager entityManager;
/**
* Properties
*/
@Autowired
private CustomYMLFile properties;
/**
* Ejecucion automatica
*/
@Override
public void run(String... args) throws Exception {
log.info("Iniciando la Ejecucion");
procedureSalidaCursor();
log.info("La ejecucion del proceso ha finalizado");
}
/**
* Salida Cursor
*/
private void procedureSalidaCursor() {
log.info("Conectando al procedure : " + properties.getProcedureSalidaCursor());
try {
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
java.sql.Date fechaQuery = new java.sql.Date(df.parse("2017-07-17").getTime());
StoredProcedureQuery query = entityManager
/*
* Procedure a llamar
*/
.createStoredProcedureQuery(properties.getProcedureSalidaCursor())
/*
* Entradas
*/
.registerStoredProcedureParameter(1, Date.class, ParameterMode.IN)
.registerStoredProcedureParameter(2, String.class, ParameterMode.IN)
/*
* Salidas
*/
.registerStoredProcedureParameter(3, void.class, ParameterMode.REF_CURSOR)
} catch (Exception e) {
log.error("Error al consultar BD , Detalle > ", e);
}
}
....
}
执行此操作时出现异常:
List<Object[]> results = query.getResultList();
如果我使用相同的方法,但使用具有单独输出的程序,一切都很好。但我用游标得到了这个例外。
github项目:https ://github.com/betray32/HibernateSpring
白衣染霜花
相关分类