How can I get the column name when using native query?

51 views Asked by At

I am creating a function that receives a select query statement from a client, processes it, and queries it. However, when returning json data, I would like to not only return the query value in a list, but also add the column name and return it in the format of column name:column value.

    public ArrayList<Object> multiSelectQuery(String queryStr){
        try {
            Query query = em.createNativeQuery(queryStr);
            return (ArrayList<Object>)query.getResultList();
        }catch (Exception e){
            return null;
        }
    }

The below code throws an exception.(Could not unwrap this)

query = entityManager.createNativeQuery(sql);
List<Object[]> result = query.getResultList();
ResultSet resultSet = query.unwrap(java.sql.ResultSet.class);
ResultSetMetaData metaData = resultSet.getMetaData();

for (int i = 1; i <= metaData.getColumnCount(); i++) {
    String columnName = metaData.getColumnName(i);
    System.out.println("Column " + i + ": " + columnName);
}
0

There are 0 answers