【问题标题】:How to select a specific entry in a List from DB?如何从数据库中选择列表中的特定条目?
【发布时间】:2013-06-28 11:27:29
【问题描述】:

如果我有两个参数usernameprojectname,如何查询特定项目?尤其是下面的查询有什么问题?

class Person {
   private String name;
   private List<Project> projects;
}

class Project {
   private String projectname;
}

查询:

SELECT Project FROM Person p WHERE p.name := username AND p.projects.projectname =: projectname

结果:

illegal attempt to dereference collection [person0_.name.projects] with element property reference [projectname]

【问题讨论】:

    标签: java sql hibernate jpa hsqldb


    【解决方案1】:

    由于您正在对 pojo 的集合进行操作,因此您必须在对其进行操作之前急切地加载集合。

    试试(没测试过)

    SELECT Project FROM Person p left join fetch p.projects as projs WHERE
                            p.name := username AND  projs.projectname =: projectname
    

    refer association joins in HQL

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-06
      • 1970-01-01
      • 2014-03-08
      • 1970-01-01
      • 2023-03-04
      • 2021-06-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多