Я пытался избежать следующего предупреждения с помощью следующего кода, но мне это не удалось. Кто-нибудь знает почему.
WARN org.hibernate.hql.internal.ast.HqlSqlWalker - [DEPRECATION] Encountered positional parameter near line 1, column 202 in HQL: [select distinct p.permission from org.imedcom.server.model.Permission as p inner join p.rolePermissions as rp inner join rp.role as r inner join r.userRoles as ur inner join ur.user as u where u.id = ? ]. Positional parameter are considered deprecated; use named parameters or JPA-style positional parameters instead.
@Transactional
UserDetails loadUserByUsername(String s) throws UsernameNotFoundException, DataAccessException {
User user = User.findByUsername(s)
if (!user) {
throw new UsernameNotFoundException('User not found', s)
}
def permissions = Permission.executeQuery(
"select distinct p.permission from Permission as p " +
"inner join p.rolePermissions as rp " +
"inner join rp.role as r " +
"inner join r.userRoles as ur " +
"inner join ur.user as u " +
"where u.id = ? ", user.id)
def authorities = []
permissions.each {
authorities << new GrantedAuthorityImpl(it)
}
return new ImedComleGrailsUserDetails(user.username, user.password, user.enabled,
!user.accountExpired, !user.passwordExpired,
!user.accountLocked, authorities ?: NO_ROLES, user.id)
}
Я обновился до hibernate 5, grails 3.0.17, весна 3.0.0.M2