Используются следующие два типа записей:
Код: Выделить всё
public record User(Integer cprid, String inlognaam, String upn, Boolean actief, String email, Locatie locatie, Collection rolesExtra) {}
public record RoleExtra(Role role) { }
Местоположение и роль — это простые перечисления.
Наличие следующего запроса в myBatis:< /p>
Код: Выделить всё
SELECT g.inlognaam, g.cprid, g.upn, g.actief, g.email, g.locatie, grl.rol
FROM suez.gebruikers g
LEFT JOIN suez.gebruikers_rollen_link grl USING (cprid)
WHERE cprid = 107884
ORDER BY g.naam
Код: Выделить всё
inlognaam | cprid | upn | actief | email | locatie | rol
-----------+--------+-----------------------------+--------+-----------------------------+---------+---------
msmith | 107884 | m.smith@amsterdamumc.nl | t | m.smith@amsterdamumc.nl | AMC | ROLE_PI
msmith | 107884 | m.smith@amsterdamumc.nl | t | m.smith@amsterdamumc.nl | AMC | ROLE_PL
Код: Выделить всё
Код: Выделить всё
Error instantiating class amr.bi.elsalvador.domain.suez.User with invalid types
(Integer,String,String,Boolean,String,Locatie,Collection) or values
(107884,msmith,m.smith@amsterdamumc.nl,true,m.smith@amsterdamumc.nl,AMC,**RoleExtra[role=Principal Investigator]**).
Cause: java.lang.IllegalArgumentException: argument type mismatch
Что я делаю не так?
Подробнее здесь: https://stackoverflow.com/questions/775 ... ssociation
Мобильная версия