Обработка списков в MyBatis

#java #list #mybatis

Вопрос:

Я хочу вставить список в столбец, который имеет тип массива. Похоже, это хорошо работает, но я не могу понять, как правильно читать эту колонку.

Стол:

 CREATE TABLE person_login_password (  person_id VARCHAR(100) NOT NULL,  login VARCHAR(100) NOT NULL UNIQUE,  password VARCHAR(100) NOT NULL,  roles ARRAY NOT NULL );  

Вставить запрос:

 lt;insert id="registerAccount"gt;  INSERT INTO person_login_password (person_id, login, password, roles)  VALUES (#{id}, #{login}, #{password}, #{roles}) lt;/insertgt;  

Выберите запрос:

 lt;select id="getAccountInfo" resultMap="LoginMap"gt;  SELECT * FROM person_login_password  WHERE login = #{login}; lt;/selectgt;  

Карта результатов:

 lt;resultMap id="LoginMap" type="ru.tinkoff.kurs.components.PersonDTO"gt;  lt;result property="id" column="person_id"/gt;  lt;result property="password" column="password"/gt;  lt;result property="login" column="login"/gt;  lt;collection property="roles" column="roles" javaType="List" ofType="String"/gt; lt;/resultMapgt;  

Хотя исходный список есть ["USER", "ASDDASD"] , вывод обычно выглядит так:

 "roles": ["8e51705a-28bf-474e-a231-0d44198bfeab"]  

Есть ли какая-нибудь подсказка, как это исправить?

Комментарии:

1. Пожалуйста, добавьте версии БД и драйверов.