こんにちは誰も私はこのJavaクエリが失敗している理由を教えてくれますか?このJavaクエリが失敗するのはなぜですか?結果があるとき0を返す
Query q = entityManager.createNativeQuery("SELECT m.* FROM MdmAudit m WHERE m.correlationID = :correlationId AND m.verb = :verb", MdmAuditDAO.class);
//Query q = entityManager.createNamedQuery("MdmAuditDAO.GetData");
q.setParameter("correlationId", resp.getHeader().getCorrelationID());
q.setParameter("verb", resp.getHeader().getVerb());
long result = (long) q.getFirstResult();
namedQuery:
@NamedQuery(name="MdmAuditDAO.GetData", query="SELECT m FROM MdmAuditDAO m WHERE m.correlationId = :correlationId AND m.verb = :verb")
public class MdmAuditDAO implements Serializable {
私は私のMdmAuditDAOクラスのゲッターとセッターを持っている、と私は、変数の命名をチェックして、彼らはNamedQueryのように同じなので、問題はありませんそこにはない。
私の問題は、データベースに3つのエントリがあり、少なくとも1つの回答を返さなければならないということですが、私の結果は0になります。
MdmAuditDAOは、私のpersistence.xmlとmy ehcache.xmlで定義されています。だから私は返される結果が0であるのはなぜですか?私はまた、返されたオブジェクトまたはオブジェクトのリストを取得しようとしました。同じ結果ですが、何も返されませんが、mssqlデータベースでクエリを実行すると、結果は下の図のようになります。それはm.*
とは関係がありません。私はSELECT文でそれを使用すると結果が得られます。
EDIT 1:これは私が私の休止状態ログから得るものである、と私はこれを読んする方法がわかりませんか?
Hibernate:
select
mdmauditda0_.id as id1_7_,
mdmauditda0_.correlationID as correlat2_7_,
mdmauditda0_.messageID as messageI3_7_,
mdmauditda0_.meter_no as meter_no4_7_,
mdmauditda0_.noun as noun5_7_,
mdmauditda0_.payload as payload6_7_,
mdmauditda0_.source as source7_7_,
mdmauditda0_.subtype as subtype8_7_,
mdmauditda0_.time as time9_7_,
mdmauditda0_.verb as verb10_7_
from
MdmAudit mdmauditda0_
where
mdmauditda0_.correlationID=?
詳細情報を入手するには設定する必要がありますか?私は次のジャーを使用しています
そして私のJavaのバージョンは1.7.0_79です。
両方のクエリが0を返しますか? –
@Khalil Mはい両方のクエリは0を返し、なぜ私は考えられないのですか? – TheLearner
''私はwhere句で2つの引数を持つ理由を理解できませんが、hibernate log.'2.'からの1つの条件だけがwhere句からすべての引数を削除し、結果を確認します。 '3.' resp.getHeader()。getCorrelationID()の値をチェックします。 '4.'データベース接続を確認してください。別のデータベースに接続している可能性があります。 – degr