のTomcatから不正な結果を得る:5.5
オラクル:11G(11.1.0.7.4)
JDK:1.6
休止状態:3.0.5休止オラクル
コンテキスト我々が使用している
ビューの行数を取得するための休止状態。 ビューは常に少なくとも1つの行を取得するように記述されています。 データベースには、ビューが8行を返すのに十分な行があります。我々は再びしようとした場合ZERO
として
たまに問題、我々はカウントを取得8の正しい数が返される(すなわち、ユーザは、最新の画面を表示し)。悪い結果
2を返す私たちは
1以下を除外するために、物事の束を試してみました
調査
)Oracleサーバーは)それがあることを確認するビューをチェック良いつまり、正しい戻りますです結果
今疑いが休止状態
コードスニペット方に回っています 以下のコードで何か不審な点を見つけることができますか?
public static int getRowCount(Criteria criteria)
{
int totalRows = 0;
criteria.setProjection(Projections.rowCount());
Integer count = (Integer) criteria.uniqueResult();
if (count != null)
totalRows = count.intValue();
criteria.setProjection(null);
criteria.setResultTransformer(Criteria.ROOT_ENTITY);
return totalRows;
}
我々はまた、カウントはそれが聞こえるかもしれないとしてゼロではなくヌル
奇妙である、それは誤った結果を返し、私たちはOracleのホットフィックスを適用した場合に、さらにこのエラーが起こって始め公表Oracleの欠陥があることを確認しました。誰もが、それはOracleが間違った結果を返すことができることが可能です
質問
と思いますか?これを解決する方法上の任意の提案は、同様いただければ幸いです
...いくつかの重要な事実
の
概要 - 我々は11.1に11.1.0.6.1からOracle11Gをアップグレードしたほぼ同時期に起こって開始。 0.7.4といくつかのホットフィックスを行った。
- これは、その期間中に生態系に起こった唯一の変更です.Oracleへの変更
- これは一貫して起こりません。さてあなたは問題を見る - あなたはそうしない。
- 頻度が低い。しかし、アラームを引き起こすほど深刻です。
hibernate.show_sqlは、ハイバーネーションが正しいSQLクエリを送信することを確認します – iliaden