我有一个名为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])