Back
Close

Hibernate Native SQL

vembubalaji
1,256 views

Adding joins with entity mapping.

  • We can also use addEntity() and addJoin() methods to fetch the data from associated table using tables join. The above query can be re-written as following;
A quick sample. Check out the JAVA class and SQL file
// {...}
List<Object[]> usersJoin = session
.createNativeQuery(
"select u.*, t.* from user u left outer join team t on u.team_id=t.team_id where u.user_id=?")
.addEntity("u", User.class).addJoin("t", "u.team").setParameter(1, 1).list();
usersJoin.stream().forEach(object -> { // The user's object list would contain a User instance and a
// "joined"
// team instance.
User userJoin = (User) object[0];
logger.info("User - " + userJoin.getName());
logger.info("User Domain - " + userJoin.getDomain().getDomainName());
Team teamJoin = (Team) object[1];
logger.info("Info: User Team Name " + teamJoin.getTeamName());
});
}
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  • Notice the second query, which fetches the Domain details. This is the eager Loading of the requested object
  • [aliasname].* is used to return all properties of an entity. When we use addEntity() and addJoin() with join queries like above it returns both the objects, as shown above.
Create your playground on Tech.io
This playground was created on Tech.io, our hands-on, knowledge-sharing platform for developers.
Go to tech.io
codingame x discord
Join the CodinGame community on Discord to chat about puzzle contributions, challenges, streams, blog articles - all that good stuff!
JOIN US ON DISCORD
Online Participants