grails findAll标记

grails findAll标记,grails,findall,Grails,Findall,如何在grailsfindall标记中使用“selectid、name、part、description FROM user” 我试过了 User.findAll("SELECT id, name, part, description FROM user") 而是使用 User.findAll("FROM user") 但是显示出错误。 有人能给我推荐一下标签吗 谢谢, sri..finadAll()返回域对象的集合,因此枚举要选择的列没有意义;它理解的查询不是真正的SQL,基本上只包含

如何在grailsfindall标记中使用“selectid、name、part、description FROM user”

我试过了

 User.findAll("SELECT id, name, part, description FROM user") 
而是使用

User.findAll("FROM user")
但是显示出错误。 有人能给我推荐一下标签吗

谢谢, sri..

finadAll()
返回域对象的集合,因此枚举要选择的列没有意义;它理解的查询不是真正的SQL,基本上只包含WHERE子句。因为您似乎不想约束结果集,所以这可能就是您所需要的:

User.findAll()
它将返回所有
User
对象的集合。如果需要约束,则语法为

User.findAll("from User as u where u.id=?", [userId])
或者,更简单的是,您可以使用:

finadAll()
返回域对象的集合,因此枚举要选择的列没有意义;它理解的查询不是真正的SQL,基本上只包含WHERE子句。因为您似乎不想约束结果集,所以这可能就是您所需要的:

User.findAll()
它将返回所有
User
对象的集合。如果需要约束,则语法为

User.findAll("from User as u where u.id=?", [userId])
或者,更简单的是,您可以使用:


如果要像这样运行报告样式查询,请使用executeQuery方法:

def rows = User.executeQuery("SELECT id, name, part, description FROM User")
返回值将是对象[]的列表,其中对象数组中的每个元素都是列的类型,即第一个元素是长的,第二个是字符串,等等


请注意,用户必须大写,因为您指的是Hibernate实体-这不是SQL查询,而是HQL。

如果要运行类似这样的报告样式查询,请使用executeQuery方法:

def rows = User.executeQuery("SELECT id, name, part, description FROM User")
返回值将是对象[]的列表,其中对象数组中的每个元素都是列的类型,即第一个元素是长的,第二个是字符串,等等


请注意,用户必须大写,因为您指的是Hibernate实体-这不是SQL查询,而是HQL。

如果您只想查询某些字段,可以使用带投影的条件查询

例如:

def userProperties = User.withCriteria {
    projections {
        property('id')
        property('name')
        property('part')
        property('description')
    }
}

此查询将为每个匹配行返回字符串数组(或数据库列类型映射到的任何类型),而不是域对象。

如果只想查询某些字段,可以使用带投影的条件查询

例如:

def userProperties = User.withCriteria {
    projections {
        property('id')
        property('name')
        property('part')
        property('description')
    }
}

此查询将为每个匹配行返回字符串数组(或数据库列类型映射到的任何类型),而不是域对象。

它将返回仅需访问该对象值的对象数组列表。例如:

def result = Code.findAll("from Code as c where c.user_code=?",[pass])
result[0].user_code
我的代码类是这样的:

class Code {

    String user_code
    boolean flg_active

    static constraints = {

        user_code nullable:true, blank:true, size:0..Text.MID
        flg_active nullable:true, blank:true, default:1
    }
}

希望它能帮助你

它将返回对象的ArrayList,您只需访问该对象的值即可。例如:

def result = Code.findAll("from Code as c where c.user_code=?",[pass])
result[0].user_code
我的代码类是这样的:

class Code {

    String user_code
    boolean flg_active

    static constraints = {

        user_code nullable:true, blank:true, size:0..Text.MID
        flg_active nullable:true, blank:true, default:1
    }
}

希望它能帮助你

但我们是否有显示“从用户处选择id、名称、部件、说明”的标签。thanks@Srinath:不,没有那样的标志。对于使用域对象的框架来说,这是没有意义的。使用我列出的方法获取用户对象,然后访问这些对象的属性有什么不对?听起来您以前只使用过PHP,现在正试图用Grails编写PHP代码。我以前在RubyonRails工作过。我已经用过你上面提到的findAll标签了。我只是想知道Grails中是否也有类似的标签。感谢您的建议:(@Srinath:您可以使用groovy.sql.sql执行直接sql查询,但是这样做,您就离开了Grails框架。顺便说一句,您一直在说“tag”,但我们在这里讨论的是方法,而不是标记。是的。我在以前的应用程序中使用了groovy.sql.sql,它将返回数组中的结果。但是对于这个应用程序,我使用了findAll。我发帖是想了解和分享一些你们的信息,如果grails中有任何其他方法。谢谢。但是我们有没有显示结果的标记从用户中选择id、名称、部件、说明" . thanks@Srinath:不,没有这样的设计。对于处理域对象的框架来说没有意义。使用我列出的方法获取用户对象,然后访问这些对象的属性有什么问题?听起来你以前只使用过PHP,现在正试图用Grails编写PHP代码。这不会有什么问题了解更多。之前我在Ruby on Rails工作过。我已经使用了上面提到的标记findAll。我只想知道Grails中是否也有类似的标记。感谢您的建议:(@Srinath:您可以使用groovy.sql.sql直接执行sql查询,但这样做,您就离开了Grails框架。顺便说一句,您一直在说“标记”,但我们在这里讨论的是方法,而不是标记。是的。我在以前的应用程序中使用了groovy.sql.sql,它将返回数组中的结果。但在这个应用程序中,我使用了findAll。如果grails中有任何其他方法,我想与大家分享一些信息。谢谢