grails findAll 标签
如何在 grails findAll 标记中使用“从用户中选择 id、名称、部分、描述”。
我尝试
User.findAll("SELECT id, name, part, description FROM user")
使用
User.findAll("FROM user")
“但是显示错误”。
标签是什么?
How to use "SELECT id, name, part, description FROM user " in grails findAll tag.
I tried
User.findAll("SELECT id, name, part, description FROM user")
instead using
User.findAll("FROM user")
But shows errors.
What is the tag?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
finadAll()
返回域对象的 Collection,因此枚举列进行选择没有意义;它理解的查询不是真正的 SQL,并且基本上仅包含 WHERE 子句。由于您似乎不想约束结果集,这可能就是您所需要的:它将返回所有
User
对象的集合。如果您需要约束,语法就是或者,甚至更简单,您可以使用 动态查找器:
finadAll()
returns a Collection of domain objects, so enumerating columns to select does not make sense; the queries it understands are not real SQL, and consist basically only of WHERE clauses. Since you don't seem to want to constrain the result set, this is probably all you need:It will return a collection of all
User
objects. If you need constraints, the syntax istOr, even simpler, you can use a dynamic finder:
如果要运行这样的报告样式查询,请使用executeQuery方法:
返回值将是一个Object[]列表,其中对象数组中的每个元素都是列的类型,即第一个元素将是一个long 、第二个字符串等。
请注意,User 必须大写,因为您指的是 Hibernate 实体 - 这不是 SQL 查询,而是 HQL。
If you want to run report-style queries like this, use the executeQuery method:
The return value will be a List of Object[] where each element in the object array is the type of the column, i.e. the 1st element will be a long, 2nd a String, etc.
Note that User has to be capitalized since you're referring to the Hibernate entity - this isn't a SQL query, it's HQL.
如果您只想查询某些字段,可以使用带有投影的条件查询。
示例:
此查询将为每个匹配行返回一个字符串数组(或数据库列类型映射到的任何内容),而不是域对象。
If you want to query for only certain fields, you can use a criteria query with a projection.
Example:
This query will return an array of Strings (or whatever the database column type is mapped to) for each matching row, instead of a domain object.
它将返回一个对象的 ArrayList,您只需访问该对象的值即可。例如:
我的 Code 类是这样的:
It will return an ArrayList of objects you only have to access that objects values. For example:
Where my Code class is something like this: