Нужна помощь с преобразованием списков / коллекций Java или чего-то еще - PullRequest
1 голос
/ 08 февраля 2011

У меня есть список объектов, возвращаемых из getJdbcTemplate (). Query

, которые выглядят так

object(test,test,test,1)
object(test,test,test,2)
object(test,test,test,3)

Как я могу перенести их в один объект, который выглядит следующим образом

object(test,test,test,list<t>({1,2,3}))

Надеюсь, вы поняли идею из моего представления объекта веревочного псевдо :)

Ответы [ 4 ]

1 голос
/ 08 февраля 2011

Я думаю, что использование RowMapper может быть немного болезненным.Возможно, вы можете сделать что-то вроде этого (кстати, это мое псевдо): -

List<Map> rows = getJdbcTemplate().queryForList(sql);

MyObject obj = null;

for (Map row : rows) {
    // configure the first 3 fields upon object creation.
    if (obj == null) {
        obj = new MyObject(row.get("firstField"), row.get("secondField"), row.get("thirdField"));
    }   

    // basically add each item into the list 
    obj.addToList(row.get("fourthField"));
}
1 голос
/ 08 февраля 2011

JdbcTemplate имеет дело со строками, поэтому вам нужно RowMapper, чтобы извлечь значения и преобразовать их в список пользовательского типа (реализовать класс, соответствующий этой структуре object(test,test,test,1)).Затем вы можете работать с извлеченными значениями и собрать новый объект из значений списка.

Ссылка:

0 голосов
/ 08 февраля 2011

Расширение вашей объектной модели.

Вам необходимо создать новый объект, аналогичный тому, который вы создаете с аргументом отдельного значения, который вместо этого принимает список или коллекцию в качестве последнего аргумента. Вместо того, чтобы хранить там одно значение, ваш объект будет хранить там список или коллекцию. Если этот список или коллекция будут неизменными после создания объекта, вам следует рассмотреть возможность преобразования данных в int[] перед его сохранением.

Затем создайте все необходимые методы для этого нового объекта. Вы даже можете написать метод для возврата массива старых объектов, где каждый объект имеет только одно значение.

0 голосов
/ 08 февраля 2011

Не могли бы вы использовать двумерный массив?

http://www.willamette.edu/~gorr/classes/cs231/lectures/chapter9/arrays2d.htm

Я вроде нуб на Java, так что если я не прав, прошу прощения за мое невежество

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...