2012-01-09 17 views
1

次のエラーが表示されています:org.postgresql.util.PSQLException:カラム名usuarioがこのResultSetに見つかりませんでした。org.postgresql.util.PSQLException:このResultSetにカラム名usuarioが見つかりませんでした

しかし、私は適切なクラスで適切に宣言された次のカラム・ユーアリオを持っています!

UsuariosGruposDAO.class

public Object objectFactory(ResultSet rs) { 
     try { 
      UsuariosGrupos usergroup = new UsuariosGrupos(rs.getString("usuario"), rs.getString("grupo")); 
      return usergroup; 
     } catch (SQLException e) { 
      e.printStackTrace(); 
      // retorno do método 
      return null; 
     } 
    } 

UsuariosGrupos.class

public class UsuariosGrupos { 

    private String usuario; 
    private String grupo; 

    public UsuariosGrupos() { 
    } 

    public UsuariosGrupos(String usuario, String grupo) { 
     this.usuario = usuario; 
     this.grupo = grupo; 
    } 

エラーは次の行に表示されます。私のリスト方式の

 ugList.add((UsuariosGrupos) objectFactory(rs)); 

List<UsuariosGrupos> ugList = null; 
    try { 
     //Conecta no banco 
     conn.conectar(); 
     //Prepara o preparedStatment 
     stmt = (PreparedStatement) conn.getPreparedStatement("SELECT * from usuarios_grupos"); 
     //Executa a instrucao SQL 
     ResultSet rs = stmt.executeQuery(); 
     ugList = new ArrayList<UsuariosGrupos>(); 
     //Enquanto ouver resultSet 
     while (rs.next()) { 
      ugList.add((UsuariosGrupos) objectFactory(rs)); 
     } 
     System.out.println("################################UsuariosGrupos OK################################"); 
    } catch (SQLException e) { 
     System.out.println("################################UsuariosGrupos Falhou################################"); 
     e.printStackTrace(); 
    } finally { 
     conn.desconectar(); 
    } 
    return ugList; 
} 

私のリストを個別にテストすると奇妙なことに、データテーブルに適切な結果が表示されます。しかし、アプリケーション全体を実行すると、何も表示されず、結果セットにカラム・ユーザリオが見つからないというエラーが表示されます。助言がありますか?

テーブルが2つのフィールドがあります。

Usuarios | Grupos 

admin  2 
admin  3 

それは私が私のJSFコードを分離する際、細かい表示しますが、私は1つのJSFファイルにそれを持っているときにデータが表示されません。

+0

テーブル「usuarios_grupos」の構造を確認できますか? – Pablo

+0

@Pablo私の質問が更新されました – ShaunK

+0

@Grayが正しい答えを持っていると思います。結果セットの項目を名前で取得するときは、データベースの列名を指定する必要があります。あなたが最終的に設定したいオブジェクト。 PostgreSQLの – DaveH

答えて

4

テーブルダンプではフィールドが「Usarios」と表示されますが、rs.getString("usuario")を実行しています。それは次のようにすべきでしょうか?

rs.getString("usuarios") 

それが、その後動作しない場合、私は、あなたのコードをデバッグするgetString行にブレークポイントを置くと、フィールド名があるかを確認するResultSetを見てお勧めします。

関連する問題