ダウンロード
Magazine
開発
アカウント
ダウンロード
Magazine
開発
ログイン
アカウント/パスワードを忘れた
アカウント作成
言語
ヘルプ
言語
ヘルプ
×
ログイン
ログイン名
パスワード
×
アカウント/パスワードを忘れた
日本語の翻訳状況
カテゴリ:
ソフトウェア
人物
PersonalForge
Magazine
Wiki
検索
OSDN
>
ソフトウェアを探す
>
システム
>
TERASOLUNA Framework
>
フォーラム
>
公開討議
>
TERASOLUNA Batch Framework for JavaのDBCollectorについて
TERASOLUNA Framework
概要
プロジェクト概要
開発ダッシュボード
Webページ
開発メンバー
画像ギャラリー
公開フィード一覧
活動
統計情報
活動履歴
ダウンロード
リリース一覧
統計
ソースコード
コードリポジトリリスト
Subversion
リポジトリ閲覧
チケット
チケット一覧
マイルストーン一覧
チケットの種類一覧
コンポーネント一覧
よく使われるチケット一覧のリスト/RSS
新規チケット登録
文書
Wiki
FrontPageの表示
ページ一覧
最近の更新
文書マネージャ
文書一覧
コミュニケーション
フォーラム
フォーラム一覧
公開討議 (1277)
メーリングリスト
MLの一覧
terasoluna-information
ニュース
フォーラム:
公開討議
(スレッド #37300)
話題(スレッド)一覧に戻る
RSS
TERASOLUNA Batch Framework for JavaのDBCollectorについて (2015-11-18 10:23 by
ビン
#77204)
返信
チケットに引用
お疲れ様です。
TERASOLUNA Batch Framework for Java 3.x.xを利用しております。
BLogicの中に、DBCollectorを利用して、データを取得していますが、
問題は取得した結果が0件の判断できませんね。
QueryDAOを利用すれば判断できますが、DBCollectorを利用する場合、どのような判断できるのかお教えて頂けませんか。
宜しくお願い致します。
メッセージ #77204 への返信
×
題名
本文
メッセージ #77204 への返信 > お疲れ様です。 > > TERASOLUNA Batch Framework for Java 3.x.xを利用しております。 > BLogicの中に、DBCollectorを利用して、データを取得していますが、 > 問題は取得した結果が0件の判断できませんね。 > QueryDAOを利用すれば判断できますが、DBCollectorを利用する場合、どのような判断できるのかお教えて頂けませんか。 > > 宜しくお願い致します。
Wiki文法は使えません
ログインしていません。投稿を区別するために投稿者のニックネームをつけてください(ニックネームの一意性は保証されません。全く別の人も同じ名前を利用することが可能ですので本人であることの特定には利用できません。本人であることを保証したい場合にはログインして投稿を行なってください)。
ログインする
ニックネーム
プレビュー
投稿
キャンセル
Re: TERASOLUNA Batch Framework for JavaのDBCollectorについて (2015-11-25 20:05 by
komodan
#77247)
返信
チケットに引用
利用されているTERASOLUNA Batch Framework for Java(以下、フレームワークと言います)のバージョンが3.2.0以降であれば、
Collector#hasNextを利用して取得した結果が0件かどうか判断できます。
(Collector#hasNextはCollector#nextで次に返却するデータが無い場合はfalseを返すメソッドです。)
■サンプルコード
(同梱されているチュートリアルのSMP001BLogicのコードを元にしています)
===
// コレクタ
Collector<NyusyukkinData> collector = new DBCollector<NyusyukkinData>(
this.queryRowHandleDAO, "SMP001.selectNyusyukkin", null);
try {
NyusyukkinData inputData = null;
if (!collector.hasNext()) {
// 取得したデータが0件だった場合の処理
return 0;
}
while (collector.hasNext()) {
// 取得したデータ1件ごとに対する処理
inputData = collector.next();
}
===
上記の手順は一例のご紹介になります。
拡張入力チェックエラーハンドラクラスを指定していた場合など、
他の条件によっては、別の方法をご紹介できると思います。
上記の方法ではやりたいことを満たせなかった場合は、
お手数ですが使用しているフレームワークの詳細なバージョンも添えて詳細にご質問いただけますでしょうか。
フレームワークの詳細なバージョンは、
お使いのterasoluna-batch-3.x.x.jarを解凍した中にあるMETA-INF/MANIFEST.MFファイルにある
Implementation-Versionの記述から確認できます。
よろしくお願いします。
#77204
への返信
メッセージ #77247 への返信
×
題名
本文
メッセージ #77247 への返信 > 利用されているTERASOLUNA Batch Framework for Java(以下、フレームワークと言います)のバージョンが3.2.0以降であれば、 > Collector#hasNextを利用して取得した結果が0件かどうか判断できます。 > (Collector#hasNextはCollector#nextで次に返却するデータが無い場合はfalseを返すメソッドです。) > > ■サンプルコード > (同梱されているチュートリアルのSMP001BLogicのコードを元にしています) > === > // コレクタ > Collector<NyusyukkinData> collector = new DBCollector<NyusyukkinData>( > this.queryRowHandleDAO, "SMP001.selectNyusyukkin", null); > try { > NyusyukkinData inputData = null; > if (!collector.hasNext()) { > // 取得したデータが0件だった場合の処理 > return 0; > } > > while (collector.hasNext()) { > // 取得したデータ1件ごとに対する処理 > inputData = collector.next(); > } > === > > 上記の手順は一例のご紹介になります。 > 拡張入力チェックエラーハンドラクラスを指定していた場合など、 > 他の条件によっては、別の方法をご紹介できると思います。 > > 上記の方法ではやりたいことを満たせなかった場合は、 > お手数ですが使用しているフレームワークの詳細なバージョンも添えて詳細にご質問いただけますでしょうか。 > > フレームワークの詳細なバージョンは、 > お使いのterasoluna-batch-3.x.x.jarを解凍した中にあるMETA-INF/MANIFEST.MFファイルにある > Implementation-Versionの記述から確認できます。 > > よろしくお願いします。
Wiki文法は使えません
ログインしていません。投稿を区別するために投稿者のニックネームをつけてください(ニックネームの一意性は保証されません。全く別の人も同じ名前を利用することが可能ですので本人であることの特定には利用できません。本人であることを保証したい場合にはログインして投稿を行なってください)。
ログインする
ニックネーム
プレビュー
投稿
キャンセル
Re: TERASOLUNA Batch Framework for JavaのDBCollectorについて (2015-11-26 18:41 by
ビン
#77257)
返信
チケットに引用
[Reply To Message #77247]
> 利用されているTERASOLUNA Batch Framework for Java(以下、フレームワークと言います)のバージョンが3.2.0以降であれば、
> Collector#hasNextを利用して取得した結果が0件かどうか判断できます。
> (Collector#hasNextはCollector#nextで次に返却するデータが無い場合はfalseを返すメソッドです。)
>
> ■サンプルコード
> (同梱されているチュートリアルのSMP001BLogicのコードを元にしています)
> ===
> // コレクタ
> Collector<NyusyukkinData> collector = new DBCollector<NyusyukkinData>(
> this.queryRowHandleDAO, "SMP001.selectNyusyukkin", null);
> try {
> NyusyukkinData inputData = null;
> if (!collector.hasNext()) {
> // 取得したデータが0件だった場合の処理
> return 0;
> }
>
> while (collector.hasNext()) {
> // 取得したデータ1件ごとに対する処理
> inputData = collector.next();
> }
> ===
>
> 上記の手順は一例のご紹介になります。
> 拡張入力チェックエラーハンドラクラスを指定していた場合など、
> 他の条件によっては、別の方法をご紹介できると思います。
>
> 上記の方法ではやりたいことを満たせなかった場合は、
> お手数ですが使用しているフレームワークの詳細なバージョンも添えて詳細にご質問いただけますでしょうか。
>
> フレームワークの詳細なバージョンは、
> お使いのterasoluna-batch-3.x.x.jarを解凍した中にあるMETA-INF/MANIFEST.MFファイルにある
> Implementation-Versionの記述から確認できます。
>
> よろしくお願いします。
ご回答、ありがとうございます。
> if (!collector.hasNext()) {
> // 取得したデータが0件だった場合の処理
> return 0;
> }
取得データは0件だけではなく、DBアクセスなどの例外もReturn 0となりますね。
#77247
への返信
メッセージ #77257 への返信
×
題名
本文
メッセージ #77257 への返信 > [Reply To Message #77247] > > 利用されているTERASOLUNA Batch Framework for Java(以下、フレームワークと言います)のバージョンが3.2.0以降であれば、 > > Collector#hasNextを利用して取得した結果が0件かどうか判断できます。 > > (Collector#hasNextはCollector#nextで次に返却するデータが無い場合はfalseを返すメソッドです。) > > > > ■サンプルコード > > (同梱されているチュートリアルのSMP001BLogicのコードを元にしています) > > === > > // コレクタ > > Collector<NyusyukkinData> collector = new DBCollector<NyusyukkinData>( > > this.queryRowHandleDAO, "SMP001.selectNyusyukkin", null); > > try { > > NyusyukkinData inputData = null; > > if (!collector.hasNext()) { > > // 取得したデータが0件だった場合の処理 > > return 0; > > } > > > > while (collector.hasNext()) { > > // 取得したデータ1件ごとに対する処理 > > inputData = collector.next(); > > } > > === > > > > 上記の手順は一例のご紹介になります。 > > 拡張入力チェックエラーハンドラクラスを指定していた場合など、 > > 他の条件によっては、別の方法をご紹介できると思います。 > > > > 上記の方法ではやりたいことを満たせなかった場合は、 > > お手数ですが使用しているフレームワークの詳細なバージョンも添えて詳細にご質問いただけますでしょうか。 > > > > フレームワークの詳細なバージョンは、 > > お使いのterasoluna-batch-3.x.x.jarを解凍した中にあるMETA-INF/MANIFEST.MFファイルにある > > Implementation-Versionの記述から確認できます。 > > > > よろしくお願いします。 > > ご回答、ありがとうございます。 > > > if (!collector.hasNext()) { > > // 取得したデータが0件だった場合の処理 > > return 0; > > } > 取得データは0件だけではなく、DBアクセスなどの例外もReturn 0となりますね。
Wiki文法は使えません
ログインしていません。投稿を区別するために投稿者のニックネームをつけてください(ニックネームの一意性は保証されません。全く別の人も同じ名前を利用することが可能ですので本人であることの特定には利用できません。本人であることを保証したい場合にはログインして投稿を行なってください)。
ログインする
ニックネーム
プレビュー
投稿
キャンセル
Re: TERASOLUNA Batch Framework for JavaのDBCollectorについて (2015-11-27 19:21 by
komodan
#77261)
返信
チケットに引用
書いていただいたとおり、例外が発生した際にもReturn 0となる(Collector#hasNextがfalseとなる)場合があります。
DBアクセス例外やデータの入力チェックエラー例外が発生した時に、
拡張例外ハンドラや入力チェックエラーハンドラを使って
CollectorExceptionHandlerStatus(ValidateErrorStatus)のSKIPやENDをreturnすると、例外が発生したデータを無視します。
例えば、例外発生データ1件だけがDBに格納されていたとして、例外ハンドラでSKIPやENDを設定する実装になっていると、
例外発生データ1件を無視するので、結果的に0件という扱いになってしまいます。
上記の状況にあてはまっていますでしょうか?
#77257
への返信
メッセージ #77261 への返信
×
題名
本文
メッセージ #77261 への返信 > 書いていただいたとおり、例外が発生した際にもReturn 0となる(Collector#hasNextがfalseとなる)場合があります。 > > DBアクセス例外やデータの入力チェックエラー例外が発生した時に、 > 拡張例外ハンドラや入力チェックエラーハンドラを使って > CollectorExceptionHandlerStatus(ValidateErrorStatus)のSKIPやENDをreturnすると、例外が発生したデータを無視します。 > > 例えば、例外発生データ1件だけがDBに格納されていたとして、例外ハンドラでSKIPやENDを設定する実装になっていると、 > 例外発生データ1件を無視するので、結果的に0件という扱いになってしまいます。 > > 上記の状況にあてはまっていますでしょうか?
Wiki文法は使えません
ログインしていません。投稿を区別するために投稿者のニックネームをつけてください(ニックネームの一意性は保証されません。全く別の人も同じ名前を利用することが可能ですので本人であることの特定には利用できません。本人であることを保証したい場合にはログインして投稿を行なってください)。
ログインする
ニックネーム
プレビュー
投稿
キャンセル