【问题标题】:Grails - criteria query for assoociationGrails - 关联的条件查询
【发布时间】:2014-03-21 02:55:03
【问题描述】:

我有类似的域模型

class Event{

 ...

static belongsTo = [user:User]

} 

class User{
  ...
  static hasMany = [events :Event];

}

现在我只想按指定的用户 ID 搜索所有事件。我怎样才能做到这一点?我找不到任何例子。

【问题讨论】:

    标签: grails


    【解决方案1】:

    这可以通过使用“belongsTo”创建的反向引用来完成。

    只需照常创建条件,并使用条件中的用户域对象来搜索 ID 或其他属性:

    Event.createCriteria().list {
         User {
              eqId(1 as Long) //The id of the user you're searching for.
         }
    }
    

    希望有帮助!

    【讨论】:

    • 是的,我尝试了同样的事情,我正在使用 GGTS,当我输入时,我可以看到 User 和 eqId 的下划线说明语法有问题? public List getEventsByUser(Long userId){ try{ Event.createCriteria().list { User { eqId(userId) //你要搜索的用户的id。 } } }catch(Exception ex){ ex.printStackTrace(); } }
    • 我让它在 IntelliJ 中工作 - 你得到堆栈跟踪还是只是 GGTS 抱怨 DSL(标准结构)不正确?
    【解决方案2】:

    这是一个简单的用例,您可以找到特定用户的所有事件: 获取当前用户,然后

    def eventList = user?.events
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-04
      • 2011-04-26
      • 2023-04-02
      • 1970-01-01
      相关资源
      最近更新 更多