Можете iReport попробовать.
Десктопное приложения для создания отчетов различной формы и содержания. Работает под Windiws, Linux.
Инструмент гибкий. Для использования понадобятся знания SQL и структуры Вашей БД разумеется
SELECT COUNT(DISTINCT(i.name)) as count
FROM cms_base i
LEFT JOIN cms_join as c ON i.id = c.id_join
LEFT JOIN cms_images as m ON i.id = m.id
WHERE (CONCAT_WS(",", i.test," ", i.test1," ", i.test2," ", i.tes3) LIKE '%test%')
limit 0,20
Например:
Заведите поле в требуемой таблице number и записывайте туда порядковый номер (1,2,3,4...). При изменении места объекта соответственно обновляйте значение number. При выводе сортируйте по number.
1) Замапить 1...N свойст сущности на одну и ту же сущность вышеуказанным путем можно. И это нормально.
2)
После принятия изменений - в таблице user доктрина сама сделала поле roles текстового типа
Сама доктрина делать ничего не будет. Смотрите маппинг поля roles. Или Вы, или какой то бандл вероятно его переопределили, указав в таблице текстовое значение поля.
3)Что бы доктрина не делала "сама" используйте миграции и смотрите какие изменения будут внесены в Вашу БД.