2014-11-11 2 views
0

я следующую таблицуВыберите несколько столбцов в MySQL с помощью пружинных данных

MYTABLE

идентификатор | col1 | col2 | col3 | col4 | col5

Я использую данные весны. У меня следующий класс хранилище/DAO

public interface MyTableDAO extends JpaRepository<MyTableEntity, Integer> 
{ 
} 

Я хочу, чтобы принести некоторые столбцы говорят в одном дао вызов Я хочу, чтобы принести col1 и col2, скажем, в другой дао вызов Я хочу принести col1, col3, col5 и т.д. ...

Я хочу данные возврата в Map<String, Object>, где String is column_name и Object - значение.

Поэтому я скажу что-то вроде «select col1, col2 ... (здесь может быть любое количество столбцов) из MyTable, где id = 1», и это даст мне карту, содержащую имя столбца в качестве ключа и значения.

Как я могу achive, что весной данных

Спасибо :)

+0

Я думаю это невозможно. В весенних данных вы можете запрашивать только объекты. – Jens

ответ

0

Я написал аналогичные функции в Java пару месяцев назад для выполнения какой-то данные постобработки.

Позвольте мне привести упрощенную версию из архивов.

protected void printResultSetAsString(ResultSet rs) throws SQLException { 
    ResultSetMetaData metaData = rs.getMetaData(); 
    String firstLn = ""; 
    int columnCount = metaData.getColumnCount(); 
    boolean isFirstLn = true; 
    String quote = ""; 
    if (ENCLOSEDQUOTES) { 
     quote = LZConstants.ENCLOSEDCHAR; 
    } 
    logger.debug("Iterating result set and printing in the console ..."); 
    while (rs.next()) { 
     Map<String, Object> columnsMap = new LinkedHashMap<String, Object>(); 
     for (int i = 1; i <= columnCount; i++) { 
      if (isFirstLn && includeFields) { 
       firstLn = firstLn + quote + metaData.getColumnLabel(i) 
         + quote + LZConstants.FIELDDELIM; 
      } 
      columnsMap.put(metaData.getColumnLabel(i), rs.getObject(i)); 
     } 

     if (isFirstLn && includeFields) { 
      System.out.println(firstLn); 
      isFirstLn = false; 
     } 
     String lineCSV = LZCollectionUtils.iterateMapValuesToLine(columnsMap, quote); 
     System.out.println(lineCSV); 
    } 
} 
Смежные вопросы