「○○付近で文法の間違いがありました!」

1274 ワード

最近、Ejbでストアド・プロシージャを呼び出すことを勉強していますが、コードは簡単です.以下のようにします.
 private String QueryStoreProcedure(){
        //            
     Query query = em.createNativeQuery("{call AddPerson()}");
        query.executeUpdate();
        StringBuffer out = new StringBuffer("******* QueryStoreProcedure      ***********");
        return out.toString();       
    }

 
このコードは、Mysqlデータベースを使用すると、少しも問題ありません.ただしSqlServerを使うと問題が大きくなります.「○○の近くに文法の間違いがあります」という間違いを繰り返し報告します.そこで、ここで簡単な記録をしてみましょう.SqlServerに対応する場合は、次のように書くべきです.
 private String QueryStoreProcedure(){
        //            
     Query query = em.createNativeQuery("exec AddPerson()");
        query.executeUpdate();
        StringBuffer out = new StringBuffer("******* QueryStoreProcedure      ***********");
        return out.toString();       
    }

 
もちろん、他にも注意すべき点がたくさんあります.たとえば、「query.getSingleResult()」を使用します.私は今まで、ずっと調整していません.ずっと「topの近くに文法の間違いがある」と報告しています.IDに基づいてデータを検索しただけで、どこにtopキーワードがあるか知っておく必要があります.
.その後は仕方なく「query.getResult()」を統一してサイズを判断し、0より大きい場合はこのlistのget(0)を取り、そうでない場合は空に戻ります.原因は今までよく分からなかったが、先にそうするしかない.O(∩∩)Oハハ~.後で問題があったらまとめます.