Ну, во-первых, я думаю, что мы должны увидеть сопоставления ваших сущностей (Java-классы)
С другой стороны, я предполагаю, что ваш класс UserRole имеет ссылку на экземпляр User.
@Entity
@Table (name="UserRole")
public class UserRole{
User user;
@OneToMany //correct mapping here
public User getUser(){return this.user;}
}
Вы должны использовать createCriteria
для навигации по ассоциации .
public List<UserRole> getRolesWithUser(){
Criteria userRoleCriteria = session.createCriteria(UserRole.class);
userRoleCriteria.createCriteria("user"); //joins the table.
userRoleCriteria.addOrder("user.name"); //adds order
return criteria.list();
}
Проблема в том, что он принесет экземпляры UserRole
, но вы можете перейти к User
.
List<UserRole> userRoles = getRolesWithUser();
for (UserRole role:userRoles){
User user = role.getUser();
//do something with role , user
}
Взгляните на Criteria API . Это всегда полезно!