получение частичного объекта из трех таблиц Hibernate

1

У меня три таблицы User, UserRole (Join table) и Role. Из таблицы ролей мне нужно получить имя на базе условий. У меня есть sql-запрос, который работает над этим сценарием, но вы хотите использовать критерии.

Select firstname, lastname from user, userrole, role where user.id=userrole.userid and userrole.roleid=role.id and role.name='James';

Это возвращает частичные объекты firstname и lastname, которые я могу использовать позже с именем fullname.

Как я могу сделать то же самое с помощью HQL или Criteria? Может ли кто-нибудь мне помочь?

в моем пользователе Entity

@ManyToMany(fetch = FetchType.EAGER)
@Fetch(FetchMode.SELECT)    
@JoinTable(
        name = "userrole",
        joinColumns = { @JoinColumn(name = "userid") },
        inverseJoinColumns = @JoinColumn(name = "roleid")
)
public Set<Role> getRoles() {
    return roles;
}
Теги:
hibernate
hql

1 ответ

0

Используйте приведенный ниже код.

Session session = HibernateUtil.getSessionFactory().getCurrentSession();
Transaction tx = session.beginTransaction();
Query query = session.createQuery("from user user where user.name=:username").setParameter("username", "James");
List<User> list = query.list();

Ещё вопросы

Сообщество Overcoder
Наверх
Меню