当前位置: 首页 > 知识库问答 >
问题:

grails列表和createCriteria()

宰父深
2023-03-14

我有一个grails web应用程序的列表函数。此列表将根据某些搜索条件填充表。Im使用hibernate createCriteria来尝试实现这一点。

在这种情况下,他们可以通过两个不同的关键特征进行搜索。用户名和用户号。

def list(params) {
//TODO STILL NOT WORKING RIGHT  
def userSearchCri = User.createCriteria()

    def userNumber = params.searchUserNumber
    def username = params.searchUsername
    uerSearchCri = User.createCriteria()



    def userList = userSearchCri.list() {

        eq('username', username)
        eq('userNumber', userNumber)
    }

    System.out.println("Search: " + userList.userNumber)
    if(userList.userNumber == "null"){
        System.out.println("OH NO! The Users Number is = " + userList.userNumber + " DO SOMETHING!")
    }


    [userInstanceList: userList]
    } 

谢谢

共有1个答案

唐增
2023-03-14

各种看点:

  1. 首先,验证参数以查看是否通过用户名ans/或用户号,ans向用户发回消息以提供有效信息。这样,您就可以消除用户输入错误的选项。
  2. 使用条件返回域对象列表。您必须遍历列表以获取用户名/用户号
  3. 一旦拥有了有效的用户列表,就应该能够相应地验证每个用户对象的用户名/用户号

下面是一个示例:

def list(params) {
    def userNumber = params.searchUserNumber
    def username = params.searchUsername
    
    //Validate whether params are NULL or valid. Send back error message to user if validation fails
    validateParams()
    uerSearchCri = User.createCriteria()

    def userList = userSearchCri.list() {
        or{
            eq('username', username)
            eq('userNumber', userNumber)
        }
    }

    if(userList){
        userList.each{user->
            if(!user.userName || !user.userNumber){
                //Send error back if needed 
            }
        }
    }
}
 类似资料:
  • 问题内容: 具有以下简单的类结构: 我正在创建一个ArrayList来保留较早创建的类的对象: 我试图向每个列表中添加每个较早创建的类的1个对象:A,B,C。唯一可能的组合是: 将类A,B,C的对象添加到list4 将类B和C的对象添加到list5 将C类的对象添加到列表list6。其余尝试会导致编译器错误,例如我们: 类型List中的方法add(capture#1-of?extends A)不适

  • 包fr.ftprod.splunk 下面是我的grails stacktrace: Error 2013-06-24 14:15:10,689[http-bio-8080-exec-10]错误Errors.GrailsExceptionResolver-处理请求时发生UnsupportedOperationException:[GET]/Splunk/Stacktrace如下:消息:null行方法

  • 创建空grails项目 修改了<code>BuildConfig。groovy,未注释 所以现在<code>ehcache<code>被排除。 将这5个JAR从<code>terracotta 在 目录中创建了 : 通过项目并得到此异常:

  • 问题内容: 我在Grails 2.0和Postgresql 9.1上遇到麻烦 我正在尝试使用顺序ID映射现有数据库。但是,即使没有在域中创建任何类,我也会遇到错误: 我的数据源是: Tee现有数据库是一个扑克软件数据库(Holdem经理)。我正在使用一个不使用序列的PlayerHand对象,但是Player对象具有一个序列表。 奇怪的是,在以前的程序中,我很容易使Player对象与Postgres

  • 问题内容: 让 假设我要对列表中每个列表的索引元素求和,例如在矩阵列中添加数字以获得单个列表。我假设数据中的所有列表的长度均相等。 如何遍历列表列表而不会出现索引超出范围错误?也许lambda?谢谢! 问题答案: 您可以尝试以下方法: 这里使用的组合和解压的列表,然后根据自己的索引压缩的项目。然后,您可以使用列表推导来遍历相似索引的组,对其进行求和并返回其“原始”位置。 为了更清楚一点,下面是迭代

  • 问题内容: 我正在编写一个小型Grails应用程序,并且在运行以下相当简单的代码时,我继续获得StaleObjectStateException:s约占“ createfoo”调用的1/10:th。很可能我错过了使用GORM的最佳方法。 这是代码: 我对GORM最佳做法的疑问: “ if-validate()-then-save()-else-discard()”是否是在GORM中持久保存新对象的