🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Yahoo! Query Language

Yahoo! Query Language(YQL)は、米ヤフーが提供しているAPIサービスです。Web上からxmlやjson形式でデータ出力を行います。Yahoo!の検索エンジンをSQLのように操作できます。

Q&A

解決済

1回答

3106閲覧

struts,spring,Ibatisの環境下で更新処理が出来ない。

takay

総合スコア7

Yahoo! Query Language

Yahoo! Query Language(YQL)は、米ヤフーが提供しているAPIサービスです。Web上からxmlやjson形式でデータ出力を行います。Yahoo!の検索エンジンをSQLのように操作できます。

0グッド

0クリップ

投稿2015/08/20 04:52

初めまして今現場で一人で開発していまいてstruts1.2、spring1.2、ibatis2.4の環境下で検索で一覧表示させたものを編集して更新する作業をしてるのですがロールバックされて更新できません。エラーが確認出来なく、他の機能のDBログを確認すると成功したものはcommitのあと必ずrollbackされていて謎です。sqlはツールで直接やった場合問題なくinsertされます。気になる所はActionFormとjspで更新ボタンを押した時にActionにデータを渡す時の書き方で急に処理が重くなりました。
insertする為にどこを改良すればよろしいでしょうか?
何卒よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

anonymouskawa

2015/08/20 05:09

1)更新(update)を行いたいができない 2)登録(insert)を行いたいができない のどちらでしょうか。 また、使っているDBはMySQLでしょうか?
takay

2015/08/21 08:44

ご連絡頂き大変ありがとうございます。更新処理(update)処理になります。DBはoracle11gです。 何卒よろしくお願い致します。
guest

回答1

0

ベストアンサー

ibatisのオートコミットがオフになっていないでしょうか。
また、updateの場合であれば、ロックがかかっている可能性はありませんか?

投稿2015/08/20 05:13

anonymouskawa

総合スコア856

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

takay

2015/08/21 08:40

ご返信頂き大変ありがとうございます。オートコミットはfalseです。ということはオフという事でしょうか。 ご指摘の通りロックがかかって可能性を考えており、勉強不足でどう見つけてよいのか、かなり参っております。できましたら、引き続きアドバイス何卒よろしくお願い致します。
anonymouskawa

2015/08/21 08:57

設定で、DefaultAutoCommitがfalseになっているのであれば、オートコミットはされていません(オフです) ですので、Transactionを自分で設定しなければならないですね。
takay

2015/08/21 09:39

ご連絡、ご指摘ありがとうございます。今は帰社しておりまして、帰り際にSqlclientクラスのメソッドを使いstarttransactionメソッドとコミットするメソッド(もうし訳ありません、只今詳しいメソッドが思い出せないのですが)を使用し実行した所、使用出来ないというエラーが出た所でやむなく終了したとこであります。今回はSQLを記述しているxmlに直接アクセスするentityクラスにしている所で行いました。記述の仕方、記述場所が理解していない状況です。 アドバイスよろしくお願い致します。
anonymouskawa

2015/08/24 02:50

どういう構成になっているか不明ですが、 Entity(DTO) DAO Service で構成されているのだとすると、ServiceからDAOを呼び出してSQLが実行されているはずです。 DAOで、SqlMapClientのオブジェクトを得ているはずですが、そのSqlMapClientでstartTransactionできませんか?
takay

2015/08/24 12:53

構成的にはAction→BLO(ビジネスロジック)→dao→Entiry(マッピングファイルにアクセス)→マッピングファイル(SQL記述)EntitiyクラスのでSqlMapClientをextendsしています。getSqlClientTemplate().insert("xxx",parameter)←これをはさむように(最初のメソッド名間違ってたらすいません)トランザクションを設定してエラーになりました。ただ、前回、DefaultAutoCommitをtrueにしたところコミットできたので、こちらこれから調べて修正していくつもりです。 今回的確にアドバイスにより非常にはやくどこが悪いのか発見する事が出来ました。本当にありがとうございました。また、質問させていただくと思いますがそのときはよろしくお願い致します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問