Проблема с большим запросом в SQLite3 через hibernate
Проблема с hibernate работающем с СУБД SQLite3. Есть entity File у которой есть собственник, сообщение-источник, чат от куда отправлен файл и так далее. В общем-то это все в рамках бота социальной сети происходит. Так вот почти все поля сущности файл это ссылки на другие сущности. И когда я ищу файл по его идентификатору, то хибернейт пытается подтянуть и сущности-поля этой сущности само-собой.
В режиме отображения запросов итоговый запрос поиска файла по его ключу выглядит так
select
filedto0_.id as id1_8_0_,
filedto0_.created as created2_8_0_,
filedto0_.updated as updated3_8_0_,
filedto0_."content" as content4_8_0_,
filedto0_.filename as filename5_8_0_,
filedto0_.message_id as message_7_8_0_,
filedto0_.original_filename as original6_8_0_,
rawmessage1_.id as id1_13_1_,
rawmessage1_.created as created2_13_1_,
rawmessage1_.updated as updated3_13_1_,
rawmessage1_.chat_id as chat_id6_13_1_,
rawmessage1_.messageid as messagei4_13_1_,
rawmessage1_.message_json as message_5_13_1_,
rawmessage1_.user_id as user_id7_13_1_,
chatdto2_.id as id1_1_2_,
chatdto2_.created as created2_1_2_,
chatdto2_.updated as updated3_1_2_,
chatdto2_.company_owner_id as company_7_1_2_,
chatdto2_.is_private as is_priva4_1_2_,
chatdto2_.telegram_chatid as telegram5_1_2_,
chatdto2_.title as title6_1_2_,
companydto3_.id as id1_5_3_,
companydto3_.created as created2_5_3_,
companydto3_.updated as updated3_5_3_,
companydto3_.name as name4_5_3_,
chats4_.companies_id as companie1_7_4_,
chatdto5_.id as chats_id2_7_4_,
chatdto5_.id as id1_1_5_,
chatdto5_.created as created2_1_5_,
chatdto5_.updated as updated3_1_5_,
chatdto5_.company_owner_id as company_7_1_5_,
chatdto5_.is_private as is_priva4_1_5_,
chatdto5_.telegram_chatid as telegram5_1_5_,
chatdto5_.title as title6_1_5_,
users6_.chats_id as chats_id2_19_6_,
userdto7_.id as users_id1_19_6_,
userdto7_.id as id1_18_7_,
userdto7_.created as created2_18_7_,
userdto7_.updated as updated3_18_7_,
userdto7_.firstname as firstnam4_18_7_,
userdto7_.lastname as lastname5_18_7_,
userdto7_.telegram_userid as telegram6_18_7_,
userdto7_.username as username7_18_7_,
workers8_.companies_id as companie1_6_8_,
workerdto9_.id as workers_2_6_8_,
workerdto9_.id as id1_20_9_,
workerdto9_.created as created2_20_9_,
workerdto9_.updated as updated3_20_9_,
workerdto9_.company_id as company_5_20_9_,
workerdto9_."right" as right4_20_9_,
workerdto9_.user_id as user_id6_20_9_,
companydto10_.id as id1_5_10_,
companydto10_.created as created2_5_10_,
companydto10_.updated as updated3_5_10_,
companydto10_.name as name4_5_10_,
userdto11_.id as id1_18_11_,
userdto11_.created as created2_18_11_,
userdto11_.updated as updated3_18_11_,
userdto11_.firstname as firstnam4_18_11_,
userdto11_.lastname as lastname5_18_11_,
userdto11_.telegram_userid as telegram6_18_11_,
userdto11_.username as username7_18_11_,
userdto12_.id as id1_18_12_,
userdto12_.created as created2_18_12_,
userdto12_.updated as updated3_18_12_,
userdto12_.firstname as firstnam4_18_12_,
userdto12_.lastname as lastname5_18_12_,
userdto12_.telegram_userid as telegram6_18_12_,
userdto12_.username as username7_18_12_
from
files filedto0_
inner join
raw_messages rawmessage1_
on filedto0_.message_id=rawmessage1_.id
left outer join
chats chatdto2_
on rawmessage1_.chat_id=chatdto2_.id
left outer join
companies companydto3_
on chatdto2_.company_owner_id=companydto3_.id
left outer join
company_chats chats4_
on companydto3_.id=chats4_.companies_id
left outer join
chats chatdto5_
on chats4_.chats_id=chatdto5_.id
left outer join
users_chats users6_
on chatdto5_.id=users6_.chats_id
left outer join
users userdto7_
on users6_.users_id=userdto7_.id
left outer join
companies_workers workers8_
on companydto3_.id=workers8_.companies_id
left outer join
workers workerdto9_
on workers8_.workers_id=workerdto9_.id
left outer join
companies companydto10_
on workerdto9_.company_id=companydto10_.id
left outer join
users userdto11_
on workerdto9_.user_id=userdto11_.id
left outer join
users userdto12_
on rawmessage1_.user_id=userdto12_.id
where
filedto0_.id=?
а в java коде это выглядит примерно так:
this.getEm().find(File.class, id);
Такой большой запрос в консоли sqlite3.exe тоже НЕ дает ни какого результата. Видимо это ограничения на количество объединений в запросе у самой СУБД, а вот если я включаю весь проект на postgresql, то запрос формируется такой же, но он корректно работает. Проверил на всех "сложных" entity.
Но я хочу, что бы проект целиком работал на sqlite3, и на postgresql. Как хибернейту сказать, что бы он использовал больше запросов, но с меньшей вложенностью? Есть вообще такая возможность?