Can we define database beside entity name instead of switch to specific schema each time fetch data in multi-tenant applications?
QEntity qEntity = QEntity.entity; JPAQueryFactory queryFactory = new JPAQueryFactory(em); queryFactory.from(database_name+qEntity).select(qEntity.id,....)
Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.
A different database would typically be provided through a different EntityManager when creating the QueryFactory. For implementing multi-tenancy through different schema’s, you can look at the alternatives described at https://www.baeldung.com/hibernate-5-multitenancy .
There is no way to query specific database or schema in JPQL itself, nor HQL – or query any table that is not mapped as an entity for that matter – so using Querydsl to generate the JPQL or HQL for you has the same limitation.