Can define the database name beside the table when using query DSL?

Can we define database beside entity name instead of switch to specific schema each time fetch data in multi-tenant applications?

For instance:-

QEntity qEntity = QEntity.entity;
JPAQueryFactory queryFactory = new JPAQueryFactory(em);
queryFactory.from(database_name+qEntity).select(qEntity.id,....)

Answers:

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.

Method 1

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.


All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x