簡體   English   中英

mysql存儲過程調用手動工作,但不能從java

[英]mysql stored procedure call works manually, but not from java

我正在從Java調用mysql存儲過程,如下所示:

public void deleteMyProduct(final String country, final String someId) throws EntityDoesNotExistException {
        getHibernateTemplate().execute(new HibernateCallback() {

            public Object doInHibernate(final Session session) {
                session.clear();    
                Connection con = session.connection();
                try {
                    CallableStatement cst = con.prepareCall("{call deleteProduct( ?, ? )}");
                    cst.setString(1 , country);
                    cst.setString(2 , someId);
                    cst.execute();
                    cst.close();    
                }
                catch(SQLException e){
                    logger.error("Error deleting product, someId:  "+ someId, e);
                }
                return null;
            }
        });

無法成功刪除產品; 但是,當我手動運行它時,它確實可以。 知道可能是什么問題嗎?

ps存儲過程很大,並且包含可識別的信息,因此我沒有隨意發布它的權利。 但是,它已經投入生產了一段時間,直到最近才停止工作。

  1. 您確定代碼正在執行嗎?
  2. 變量countrysomeId實際上正確嗎?
  3. SQLException說什么?
  4. 獲得成功的連接Connection con = session.connection();
  5. 您是否傳遞了正確的變量類型(您應該發送Int而不是String )?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM