我正在尝试更改Grails控制器的默认索引操作以启用一些基本搜索条件。
我有两个主要问题:
createCriteria().list()
操作。特别是,我应该如何考虑null
(忽略)标准等内容? 编辑:我正在添加我的控制器代码:
def index(Integer max) {
session.alarmFilter = params.alarmFilter == null ? (session.alarmFilter == null ? [] : session.alarmFilter) : params.alarmFilter
params.max = Math.min(max ?: 10, 100)
def c = Alarm.createCriteria()
def results = c.list (params) {
if(session?.alarmFilter?.channelInterface != null) {
sqlRestriction("channel_interface_id = ${session.alarmFilter.channelInterface.id}")
}
}
respond results, model:[alarmFilter: session.alarmFilter, alarmInstanceCount: results.totalCount]
}
我不喜欢在会话中保存搜索条件(alarmFilter),因为它实际上并不像会话信息。特别是,返回此页面将记住以前的搜索条件。
如果未选择条件,if
语句也会导致'SQLException'。