2015-07-14 2 views
1

я в следующей таблице:H2: GetArray возвращает только один элемент

CREATE TABLE "mytable" (
... 
    "columns" ARRAY NOT NULL, 
... 
); 

Я вставленные элементы в массиве вручную через H2 веб-консоли:

INSERT INTO "mytable"(..."columns"...) VALUES 
(...,'{''col1:uuid'',''col2:id'',''col3:firstName'',''col4:middleName'',''col5:lastName''}',...); 

Теперь я пытаюсь получить массив элементов из java

Object[] colArray=(Object[]) rs.getArray("columns").getArray(); 
System.out.println("Test:"+colArray.length);//returns 1. all columns are in one string. 

В чем моя ошибка?

ответ

1

Чтобы вставить в столбец с типом ARRAY используется следующий синтаксис:

INSERT INTO 
       "mytable"("columns") 
     VALUES 
     ( 
      (
       'col1:uuid', 
       'col2:id', 
       'col3:firstName', 
       'col4:middleName', 
       'col5:lastName' 
      ) 
     ); 

Проверьте свои данные с

SELECT ARRAY_LENGTH("columns") FROM "mytable" 
+0

Нет, это не помогло. В наборе результатов у меня есть только одна строка со всеми столбцами. –

+0

Я думаю, проблема в том, как я вставляю массив в таблицу. –

+0

Хорошо, я вижу. Вы пытались вставить как из документа «INSERT INTO» mytable »(« columns ») VALUES ( ('col1: uuid', 'col2: id', 'col3: firstName', 'col4: middleName', ' col5: lastName ') ); ' , а затем посмотреть результат с помощью ' SELECT ARRAY_LENGTH ("columns") fROM "mytable" ' – Willmore