gpt4 book ai didi

grails - 如何显示HQL结果以便查看。

转载 作者:行者123 更新时间:2023-12-02 15:49:47 25 4
gpt4 key购买 nike

我有两个简单的类Staff和Department,我想使用HQL按部门列出人员,然后在 View 中显示。

首先是 Realm 类职员和部门

class Staff {
String fullName
String dateOfBirth

static belongsTo = [department: Department]

}
class Department {
String department

static hasMany = [staff: Staff]
}

部门有海,陆,空等实例。

这是一个StaffController.groovy(例如,仅一个listbysea Action )
def listbysea() {
params.max = Math.min(params.max ? params.int('max') : 10, 100)

//Query
def staffList = Staff.executeQuery("SELECT s.fullName from Staff s join s.department d WHERE d.department = 'Sea')
[staffInstance: staffList, staffInstanceTotal: staffList.size()]
}

这是我的listbysea.gsp
<table class="table table-striped table-hover table-bordered">
<thead>
<tr>
<g:sortableColumn property="fullName" title="${message(code: 'staff.fullName.label', default: 'Full Name')}" />

<g:sortableColumn property="dateOfBirth" title="${message(code: 'staff.dateOfBirth.label', default: 'Date of Birth')}" />

</tr>
</thead>
<tbody>
<g:each in="${staffList}" status="i" var="staffInstance">
<tr class="${(i % 2) == 0 ? 'even' : 'odd'}">

<td style="vertical-align: middle;"><g:link action="show" id="${staffInstance.id}"> ${fieldValue(bean: staffInstance, field: "fullName")}</g:link></td>

<td style="vertical-align: middle;"> ${fieldValue(bean: staffInstance, field: "dateOfBirth")}</td>

</tr>
</g:each>
</tbody>
</table>

但是,表中没有数据,我不确定查询是否确实根本不会产生任何结果,或者是 View 问题。所以我问在将查询结果返回到 View 中我做了正确的事情吗?我什至尝试了这个查询
def staffList = Staff.executeQuery("SELECT new map(s.fullName as fullName, d.department as department)\
FROM Staff as s, Department as d \
WHERE s.department = d HAVING s.department = ('Sea')")

但是仍然没有结果显示。

感谢任何提示。

最佳答案

您的 Controller 中的变量名称与gsp文件使用的名称不匹配。

在 Controller 中,您使用staffInstance:

def staffList = Staff.executeQuery("SELECT s.fullName from Staff s join s.department d WHERE d.department = 'Sea')
[staffInstance: staffList, staffInstanceTotal: staffList.size()]

但是在gsp中,您使用 staffList:
<g:each in="${staffList}" status="i" var="staffInstance">

尝试将 Controller 更改为:
[staffList: staffList, staffInstanceTotal: staffList.size()]

关于grails - 如何显示HQL结果以便查看。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41354609/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com