当前位置: 首页 > 面试题库 >

Hibernate 5.2版本->很多Query方法不赞成使用吗?

乐修远
2023-03-14
问题内容

我是hibernate的新手。

我正在尝试获取所有管理员的名字和姓氏列表。

我的以下代码中有两个警告。我已经尝试过在线搜索很多。

1)查询是原始类型。泛型查询的引用应参数化。

2)不建议使用Query类型的方法list()。

public List<Object> loadAllAdmins() {
                List<Object> allAdmins = new ArrayList<Object>();
                try {
                        HibernateUtil.beginTransaction();

                        Query q = currentSession.createQuery("SELECT admin.firstName, admin.lastName from AdminBean admin");

                        allAdmins= q.list();

                        HibernateUtil.commitTransaction();
                } catch (HibernateException ex) {
                        System.out.println("List<AdminBean> loadAllPersons: HibernateException");
                }
                return allAdmins;
        }

但是我在网上看到了这样的示例代码。我应该如何解决这两个问题?

更新资料

我只是尝试按照建议使用条件。它还说list()方法不建议使用Criteria
…似乎很多方法都不建议使用Query和Criteria,包括uniqueResult()和其他方法…我建议如何替换它们?


问题答案:
public List<Admin> getAdmins() {
    List<Admin> AdminList = new ArrayList<Admin>(); 
    Session session = factory.openSession();
    for (Object oneObject : session.createQuery("FROM Admin").getResultList()) {
        AdminList.add((Admin)oneObject);
    }
    session.close();
    return AdminList;
}

警告来自“类型推断”。

我有类似的问题。但是,我找到了没有“ SuppressWarnings”的解决方案

最近,我发现了一种无需类型推断即可编码相同内容的较短方法。

public List<Admin> getAdmins() {
    Session session = factory.openSession();
    TypedQuery<Admin> query = session.createQuery("FROM Admin");
    List<Admin> result = query.getResultList();
    session.close();
    return result;
}

希望能帮助到你。



 类似资料:
  • 本文向大家介绍hibernate5.2的基本配置方法(详解),包括了hibernate5.2的基本配置方法(详解)的使用技巧和注意事项,需要的朋友参考一下 目标:将Student实体对象加入数据库 1、首先需要下载三个东西:hibernate,slf4j,mysql。 2、分别取他们的包导入新建的项目中,我这里的版本是:hibernate-release-5.2.10里面lib目录下的requir

  • 问题内容: Eclipse是否具有一项功能,可让您搜索项目以查找对不赞成使用的方法的所有调用? 问题答案: 您可以将编译器设置为针对已弃用的API的任何使用生成错误或警告(您的选择)。 首选项-> Java->编译器->错误/警告-> 已弃用和受限的API 部分。 然后,不建议使用的方法或API的每次使用都会在“问题”视图中显示为错误/警告。

  • 根据名字查就可以了,也没其他可以查询的信息了吧,当然加上分页咯 @At public Object query(@Param("name")String name, @Param("..")Pager pager) { Cnd cnd = Strings.isBlank(name)? null : Cnd.where("name", "like", "%"+name

  • 本文向大家介绍Pytorch 使用不同版本的cuda的方法步骤,包括了Pytorch 使用不同版本的cuda的方法步骤的使用技巧和注意事项,需要的朋友参考一下   由于课题的原因,笔者主要通过 Pytorch 框架进行深度学习相关的学习和实验。在运行和学习网络上的 Pytorch 应用代码的过程中,不少项目会标注作者在运行和实验时所使用的 Pytorch 和 cuda 版本信息。由于 Pytorc

  • 问题内容: ControlsFX类被标记为已弃用。 用什么代替呢? 问题答案: 这篇博客文章解释了这一切: http://fxexperience.com/2014/09/announcing- controlsfx-8-20-7/ 自从5月29日发布8.0.6以来,此版本一直在酝酿之中- 基本上是四个月。这对我们来说并不常见(通常我们的发行版要快得多),但是Eugene和我都对一项主要工作分心-

  • 我试图建立APK,以张贴我的请求在离子在游戏商店。但是当涉及到下面的命令时,我得到了错误: PS c:\projetos\xxx>jarsigner-verbose-sigalg sha1withrsa-digestalg sha1-keystore android.keystore platforms/android/app/build/outputs/apk/release/app-relea