代码之家  ›  专栏  ›  技术社区  ›  digiarnie

如何在对单个实体执行Hibernate查询后处理对象列表

  •  3
  • digiarnie  · 技术社区  · 15 年前

    在对Hibernate查询调用list()之后,您希望它只返回一个Foo对象列表(参见下面的示例),您将如何最好地处理这种情况?

    Query query = session.createQuery("from Foo");
    List list = query.list();
    

    public List read() { ... }
    

    当我更愿意:

    public List<Foo> read() { ... }
    

    您希望read方法的调用者为每个元素强制转换为Foo吗?有什么好方法可以让read方法返回List<Foo>?

    1 回复  |  直到 15 年前
        1
  •  2
  •   Pascal Thivent    15 年前

    您是否希望read方法的调用方对每个元素都强制转换为Foo?有什么好方法可以让read方法返回List<Foo>?

    不,我不希望打电话的人演这个角色,所以我会这样写:

    Query query = session.createQuery("from Foo");
    List<Foo> list = query.list();
    

    如果要删除非类型安全强制转换警告(Hibernate查询API不是类型安全的):

    Query query = session.createQuery("from Foo");
    @SuppressWarnings("unchecked")
    List<Foo> list = query.list();