在我看来,如果我有一种情况需要在多个地方使用动态方法(例如Domain.findByName(“name”)),它会更好吗定义一个变量并引用它,而不是在多个地方使用动态方法?我知道这似乎是一个明显的答案,但我只是想确保Grails不会缓存它或者什么,而且确实有两个数据库调用正在进行。多个动态方法调用或在Grails中声明变量
0
A
回答
1
访问它在默认情况下,Grails将只缓存“get”请求时(即图书.get(4)),如果你没有设置任何额外的缓存,你会为每个请求点击数据库(如你所见)。
有关更多详细信息,请参见the 'caching queries' section of the grails documentation。
如果你只想调用一次(在视图中有意义,因为你希望它是一致的),我会在动作中执行查询并将其传入模型中,或者否则你也可以在视图中使用g:set来设置它(尽管这听起来像是更适合于控制器或服务)。
0
将域对象作为模型的一部分发送到视图会更好,而不是从视图中调用Domain.findByName("name")
。
因此,在你的控制器方法你想要
def myAction = {
def myObject = Domain.findByName("name")
// do other stuff
[myObject: myObject]
}
那么在你看来,你可以通过
${myObject.property}
相关问题
- 1. Unity3D动态变量声明
- 2. 声明变量动态
- 3. 在VB.net中动态声明变量
- 4. 如何在Main方法中声明一个静态变量?
- 5. 调用第二类静态方法来声明变量的类
- 6. C++方法变量声明
- 7. c#方法声明变量
- 8. 有多少个实例在方法中声明的静态变量?
- 9. 在Javascript中动态声明方法
- 10. 声明变量动态在PHP
- 11. 从表中声明动态变量
- 12. 我在PHP中声明了哪些静态方法/变量?
- 13. 我想使用动态SQL中声明的动态变量
- 14. JavaScript动态变量方法调用
- 15. 用这个或var声明变量?
- 16. 使用BEM方法声明Sass变量
- 17. 声明类方法中的新变量
- 18. Javascript中的变量声明方法
- 19. 声明与一个声明多个变量中MiniZinc
- 20. 1声明多个变量的声明,如声明语句
- 21. 声明多个变量在JavaScript
- 22. 在一个声明在JSP中删除多行采取动态的Java变量
- 23. 在Swift中声明多个变量的快捷方式
- 24. 在函数中声明静态变量
- 25. 如何在声明中调用方法
- 26. 声明动态SqlParameter变量(C#)
- 27. SAS动态声明宏变量
- 28. 如何在方法内声明/设置静态变量
- 29. 如何在javascript中声明和使用动态变量?
- 30. 从声明调用方法
这是正确的解决方案,根据查询和应用程序使用模型的性质,如果您有Hibernate二级缓存,则findByName(“name”,[cache:true])也可能有利于执行该操作的其他客户端启用。 – 2010-04-08 13:50:45