私はPlayアプリケーションでデータベースクエリにAnormを使用しています。実行が成功した場合、がBoolean
を返すというチュートリアルを行った。私はメソッドをテストしましたが、常にfalse
を返しました(trueを返すときは分かりません)。私もSQL(...).executeInsert()
を試しましたが、テーブルに「自動インクリメント」カラムがないので、問題はまだ存在します。任意のソリューション(拡張された '.execute()'メソッドなど)があれば、私を助けてください。ここで挿入クエリが異常終了した場合、どのように知っていますか?
が予期しないリターンに失敗している私のコードの一部であり、挿入が失敗した場合にのみ...
def addSuggestion(sessionId: BigInteger, suggestionId: BigInteger) = {
DB.withConnection { implicit c =>
if (!SQL("insert into user_suggestion_" + sessionId + " values (" + suggestionId + ",1,0,0)").execute()) {
SQL("update user_suggestion_" + sessionId + " set count=(count+1) where user_id=" + suggestionId).executeUpdate()
}
}
}
更新クエリは、(原因など任意の制約に)実行する必要があります。他の機能/代替手段はありますか?助けてください。前もって感謝します。
ありがとうJohanandren ..今私は実際に関数を理解しています。だから、例外処理を使って挿入が成功したかどうかチェックする必要がありますか?単純な方法はありませんか? –
例外処理で例外的な動作をチェックすると考えてください:)。 scala.util.Tryをチェックすると、try-catchよりも優れた処理方法が得られるかもしれません。 – johanandren