亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Session/EntityManager 在使用 StoredProcedureQuery 時關閉

Session/EntityManager 在使用 StoredProcedureQuery 時關閉

鴻蒙傳說 2022-11-02 15:40:11
我收到一個錯誤IllegalStateException:會話/EntityManager 已關閉StoredProcedureQuery與 Oracle 存儲過程SYS_REFCURSOR和.使用 Spring Boot + spring-boot-starter-data-jpa@Repositorypublic 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
查看完整描述

1 回答

?
白衣染霜花

TA貢獻1796條經驗 獲得超10個贊

您必須query.execute(); 從您的代碼中刪除;當使用REF_CURSORand 獲取數據時必須使用query.getSingleResult()orquery.getResultList(); 如果有輸出參數,則必須在此行之后訪問。使用query.execute()或不使用query.executeUpdate()時。resultSet



查看完整回答
反對 回復 2022-11-02
  • 1 回答
  • 0 關注
  • 399 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號