【问题标题】:Grails 2.4.4. hierarchical domain structure: find圣杯 2.4.4。层次域结构:find
【发布时间】:2015-08-20 08:54:15
【问题描述】:

我有分层文件夹结构:

class Folder {
    String name;
    List<Folder> subfolders;

我想选择所有不是子文件夹的文件夹。 如何在 jpql 中编写 findAll 方法/查询:

SELECT * FROM folder WHERE folder.id NOT IN (
SELECT folder.id FROM folder INNER JOIN folder_folder ON folder.id = folder_folder.folder_id);

我没有父字段;

这样的?

Folder.findAll("from Folder as folder where folder.id not in subfolders");

【问题讨论】:

    标签: grails grails-orm


    【解决方案1】:

    需要将域名改为一对多; 只需添加 static mappedBy = [subLevels: "parentFolder"]

    class Folder {
            String name;
            Folder parentFolder;
            List<Folder> subfolders;
            static mappedBy = [subLevels: "parentFolder"]
    

    而 findAll 方法将是

    Folder.findAll("from Folder as folder where folder.parentFolder = null");
    

    【讨论】:

      猜你喜欢
      • 2015-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-03
      • 1970-01-01
      相关资源
      最近更新 更多