2017-03-17 660 views
1

我有一个问题,如果我在IntelliJ IDEA中编写代码,当我遇到我想要调用的方法,但发现它已被弃用。但是IntelliJ IDEA并没有提示信息参考找到替代方法,我怎么能知道替代方法在哪里?在IntelliJ IDEA中,哪里可以找到弃用的方法的替代方法?

enter image description here

我的代码也许有助于我的问题:

sessionFactory.getCurrentSession().createQuery("from Admin where admin_name=? and pwd=?").setString(); 

我碰上Query.class,对于alternatime方法没有声明过。因为你用反编译源工作,没有更多的信息有

enter image description here

+0

javadoc理想地应该提到替代方案。否则,复制可能反编译的实现通常会起作用。检查层次结构会丢失更多信息。 –

+0

按CTRL + J查看JavaDoc,并且您应该在其中找到替代方法。 – Sudicode

回答

1

理念也帮不了你。如果您在顶部的黄色工具栏中选择“下载...”,您最有可能获得Hibernate的实际资源,并且您会看到类似于我在最新的GitHub版本Query.javaanother Query.java中看到的内容,这两者都在JavaDoc中仅高于相应的方法说

* @deprecated (since 5.2) use {@link #setParameter(int, Object)} or {@link #setParameter(int, Object, Type)} 
* instead 

至于为什么这些方法都过时了,我觉得Migration Guide 5.2提供了一些见解:

大量的工作,已经为6.0已经完成。 6.0需要的一个东西是统一的“类型系统”视图,包括它自己的类型系统(Type,EntityPersister,CollectionPersister等)和JPA的类型系统 - 这意味着统一所有这些在hibernate-core中。由于这一点以及6.0的其他重大变化,我们决定发布一个5.2版本,它显示了一个清晰的迁移路径,可以在6.0版本中进行更改,但仍然尽可能支持较早的调用和期望。

相关问题