What is the solution "Multiple ResultSets were returned by request",

I get an error:

ERROR [NewsDAO] findAll(): org.postgresql.util.PSQLException: Multiple ResultSets were returned by the query.

Im using postgresql-8.4-703.jdbc4.jar.

My code looks like this:

private static StringBuilder findAllQuery = new StringBuilder();

    {
    findAllQuery.append("SELECT * FROM news;");
}

    public List<News> findAll() {
    Statement stm = null;
    ResultSet rs = null;

    List<News> results = new ArrayList<News>();
    if (obtainConnection()) {
        try {
            stm = con.createStatement();
            rs = stm.executeQuery(findAllQuery.toString());
            while(rs.next())
                results.add(setInObject(rs));
        } catch (Exception e) {
            logger.error("findAll(): " + e);
        } finally {
            logger.info("Zamknalem");
            closeConnection();
        }
    }
    return results;
}
    public News setInObject(ResultSet rs) throws SQLException {
    News news = new News();
    news.setId(rs.getInt("id"));
    news.setTitle(rs.getString("title"));
    news.setDescription(rs.getString("description"));
    //TODO: timestamp
    news.setDate(rs.getDate("date"));
    User user = new User();
    user.setId(rs.getInt("user_id"));
    news.setUser(user);
    news.setActive(rs.getBoolean("active"));
    return news;
}

I do not know why I am getting this error. Any ideas?

+3
source share
1 answer

You should have several select statements in findAllQuery.toString().

Edit

As JB Nizet pointed out, you should try to remove the semicolon from the statement. The Postgresql JDBC driver splits instructions into semicolons, so it can issue two statements.

+11
source

All Articles