如何使用弃用警告修复Hibernate查询? [英] How to fix a Hibernate query with deprecation warnings?

查看:238
本文介绍了如何使用弃用警告修复Hibernate查询?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有人知道如何避免接下来的代码警告吗?

Does somebody knows how to avoid next WARNING for the following code?

org.hibernate.hql.internal.ast.HqlSqlWalker [HqlSqlWalker.java:929] [DEPRECATION] Encountered positional parameter near line 1, column 56.  Positional parameter are considered deprecated; use named parameters or JPA-style positional parameters instead.
Hibernate: select user0_.ID_USER as ID1_0_, user0_.USERNAME as USERNAME0_, user0_.PASSWORD as PASSWORD0_ from USER user0_ where user0_.USERNAME=?
Hibernate: select authoritie0_.ID_USER as ID1_0_1_, authoritie0_.ID_ROLE as ID2_1_, role1_.ID_ROLE as ID1_2_0_, role1_.NOMBRE as NOMBRE2_0_, role1_.DESCRIPCION as DESCRIPC3_2_0_ from USER_ROLE authoritie0_ inner join ROLE role1_ on authoritie0_.ID_ROLE=role1_.ID_ROLE where authoritie0_.ID_USER=?

Query query = sessionFactory.getCurrentSession().createQuery("from User where username=?");
query.setString(0, username);   
List<User> users = query.list();


推荐答案

正如消息所述,请改用命名参数。

As the message says, use named parameters instead.

List users = sessionFactory.getCurrentSession()
        .createQuery( "from User where username = :username" )
        .setString( "username", username )
        .list();

这篇关于如何使用弃用警告修复Hibernate查询?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆