我有一个名为Logging的域类,它存储另一个域类的ID:Organization
提供两个域的结构:

class Logging {
   Date dateCreated
   long user_id
   long organization_id
   String memberCode

   static constraints = {
      user_id(nullable: false)
      organization_id(nullable: false)
      memberCode(nullable: true)
   }
}

class Organization {
   Type type
   String name
   String memberCode
   User manager
   String collateralAutoEmails
   boolean isBlocked = true

   static constraints = {
      name(blank: false, unique: true)
      manager(nullable: true)
      memberCode(nullable: true)
      collateralAutoEmails(nullable: true)
   }

   static mapping = {
      manager(lazy: false)
   }
}

用户输入几个参数:dateCreated,memberCode和组织名称。我需要从“日志记录”域中选择符合这些条件的所有元素。
对我而言,最棘手的部分是编写查询以获取组织参数的名称。
根据搜索规则,我应该检查organization.name字段是否包含用户作为子字符串输入的数据(不区分大小写),然后从Logging域中选择相应的元素。
这两个域没有直接映射,我无法加入这些表。我尝试了不同的方法,但仍未找到解决方案。

最佳答案

干得好

Logging.executeQuery("Select l from Logging l, Organization o where l.organization_id = o.id and o.dateCreated = :dateCreated and o.memberCode = :memberCode and o.name = :name", [dateCreated: dateCreated, memberCode: memberCode, name: name])

09-11 20:09