1

私はMySql 5.5を使用しています。クエリはJboss 5.1でSpring Framework(JdbcTemplate)を介して実行されています

update ステートメントが次のメッセージをスローする問題が発生しています。

javax.ejb.EJBTransactionRolledbackException: PreparedStatementCallback; uncategorized SQLException for SQL [ UPDATE events SET last_update=?  WHERE  account_id=? ]; SQL state [HY000]; error
     code [1032]; Can't find record in 'events'; nested exception is java.sql.SQLException: Can't find record in 'events
'

私の質問は、レコードが見つからないときに例外が発生するのはなぜですか (これは予期される動作です)、どうすればそれを防ぐことができますか。

どうもありがとう

ヤニフ

詳細

テーブルに外部キーがありません。合計 15 のフィールドがあり、そのうちの 1 つが自動インクリメント ID で、残りの 4 つがインデックス化されています。クエリは `UPDATE events SET last_update=? WHERE account_id=?

実際の SQLException のスタック トレースも次に示します。

Caused by: java.sql.SQLException: Can't find record in 'events'
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3609)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3541)
        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2002)
        at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2163)
        at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2624)
        at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2127)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2427)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2345)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2330)
        at org.jboss.resource.adapter.jdbc.WrappedPreparedStatement.executeUpdate(WrappedPreparedStatement.java:365)
        at org.springframework.jdbc.core.JdbcTemplate$2.doInPreparedStatement(JdbcTemplate.java:818)
        at org.springframework.jdbc.core.JdbcTemplate$2.doInPreparedStatement(JdbcTemplate.java:1)
        at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:587)
4

0 に答える 0