Domain 类 中使用的 Grails createCriteria()
Grails createCriteria() used inside Domain classes
刚刚了解了 createCriteria() 方法的功能。只是想知道除了在控制器上应用它之外,还有什么方法可以应用到域 类 上吗?可能会自己映射到 属性,例如:
static mapping = {
additionalInfo: Page.createCriteria().list()
}
Just wanna know that other than applying it on the Controller, is
there a way to apply onto the domain classes as well?
条件查询不限于控制器,您可以使用与在控制器中相同的语法将它们应用于其他地方。但是,您展示的特定示例可能会出现问题,因为您正试图在用于配置 GORM 的 mapping
块中使用 GORM。
也许您可能只想根据 目标字段 创建一个新的 字段,如下例所示:
class myInfo {
String additionalInfo
String[] moreInfo // a transient field
getMoreInfo(){
def myresultmap = createCriteria.list{
// insert any other criteria shenanigans
}
return myresultmap
}
static transients = ['moreInfo']
}
在控制器中 return 与 class MyInfo 的域实例一样正常的视图
然后在视图中使用:
<g:each in="${domaininstancefromcontroller}">
${it.moreInfo[0]
</g:each>
参见 docs。
希望这有帮助。
刚刚了解了 createCriteria() 方法的功能。只是想知道除了在控制器上应用它之外,还有什么方法可以应用到域 类 上吗?可能会自己映射到 属性,例如:
static mapping = {
additionalInfo: Page.createCriteria().list()
}
Just wanna know that other than applying it on the Controller, is there a way to apply onto the domain classes as well?
条件查询不限于控制器,您可以使用与在控制器中相同的语法将它们应用于其他地方。但是,您展示的特定示例可能会出现问题,因为您正试图在用于配置 GORM 的 mapping
块中使用 GORM。
也许您可能只想根据 目标字段 创建一个新的 字段,如下例所示:
class myInfo {
String additionalInfo
String[] moreInfo // a transient field
getMoreInfo(){
def myresultmap = createCriteria.list{
// insert any other criteria shenanigans
}
return myresultmap
}
static transients = ['moreInfo']
}
在控制器中 return 与 class MyInfo 的域实例一样正常的视图 然后在视图中使用:
<g:each in="${domaininstancefromcontroller}">
${it.moreInfo[0]
</g:each>
参见 docs。 希望这有帮助。