`
- 浏览:
15207 次
- 性别:
- 来自:
青岛
-
grails里的session和GORM domain对象问题
session主要用来在action和页面之间传递数据,service里面不支持。以前用的很顺手,什么东西需要传递就先放在session中,然后redirect或者render。最近忽然发现一个问题,就是把domain里面的对象存放在session中出现问题,问题提示:hibernate lazy load !
原来在记录中涉及到的对象如果存放在session中是传递不出去的!
譬如:User类包含一个Department类,现在有了User的对象user,如果要把Department存放到session中:本来感觉以下语句没有问题:
session.dept = user.department
确实,在同一个action内部测试一切正常,也能够引用department的属性,但就是传不出去,不能在其他的controller里面引用,报告找不到:no session.
本人愚钝,郁闷了两天才搞明白,session必须存放原始对象!因为 Hibernate is lazy load !
session.dept = Department.get(user.deparment.id)
重新创建dept的对象,一切ok!
当然,尽量不要传递对象,性能应该差一些,直接传id即可,在这里,如果直接传id是没有问题的,因为表中存放的本来就是对象的id:
session.deptId = user.deparment.id
需要的话,随时可以根据id创建局部对象。
特记于此,为后来者鉴!
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
Grails Datastore GORM Plugin Support 2.0.4.RELEASE是一个针对这种需求的开源项目,它提供了一种强大的工具,帮助开发者简化数据存储和对象关系映射(ORM)的过程。该版本的插件是针对Grails框架的,Grails是一个...
标题 "grails-datastore-gorm-tck-1.0.9.RELEASE.zip" 提供的信息表明,这是一个与Grails框架相关的数据存储(Datastore)和GORM(Grails Object Relational Mapping)测试兼容性工具包(Test Compatibility Kit,...
- **从HQL检索映射、列表和对象**:展示了如何从查询结果中提取不同形式的数据。 **第四章:GORM在Grails中的应用** - **构造GORM对象**:继续深入探讨GORM在实际应用中的使用方法和技术细节。 以上内容涵盖了...
GORM是Grails框架的核心部分,它为开发者提供了简单、强大的数据持久化功能,支持Hibernate和MongoDB等数据库。尽管我们不会直接使用Grails框架,但我们可以将GORM集成到Spring Boot应用中,利用其便利的ORM能力。 ...
Grails框架中的GORM(Groovy Object Relational Mapping)是利用Groovy语言的优势来简化数据库操作的一套对象关系映射技术。GORM支持多种查询方式,提供了类似于Hibernate的查询能力,并且由于Groovy语言的动态特性...
GORM(Grails对象映射) [Grails] [Grails]是用于使用[Groovy] [Groovy]编程语言构建Web应用程序的框架。 该项目为Hibernate和NoSQL数据存储上的GORM的新实现提供了GORM API管道。 [Grails]: : [Groovy]: : ...
2. **GORM(Grails Object Relational Mapping)**: GORM 是Grails的ORM框架,提供了与数据库交互的能力,支持关系型数据库,如MySQL、PostgreSQL等。它提供了CRUD操作,以及事务管理和动态查询。 3. **插件系统**...
4. 使用GORM:有了SessionFactory,你就可以创建Session对象,并进行数据库操作。例如,创建新记录、查询数据、更新或删除现有记录。 5. 关闭资源:完成操作后,别忘了关闭SessionFactory,以释放系统资源。 在...
**Grails 框架详解:实现基础的...开发者可以通过理解Grails的核心组件,如Domain Classes、Controllers和Views,以及GORM的查询机制,快速构建功能丰富的Web应用。同时,内置的测试框架帮助确保代码的稳定性和可靠性。
在Grails框架中,域模型(Domain Classes)是用于表示业务实体的对象,它们通常映射到数据库中的表。通过GORM(Grails Object Relational Mapping),Grails提供了自动的ORM支持,使得开发者无需编写复杂的SQL语句...
GORM是Grails的持久化框架,它实现了Hibernate和ActiveRecord的功能,使得与数据库的交互变得简单。通过定义领域类,你可以轻松地完成CRUD(创建、读取、更新、删除)操作。 五、Grails插件系统 Grails的插件系统...
对象关系映射(GORM)是Grails框架中的一个重要组成部分,它为Groovy语言提供了对象持久化的支持。GORM支持基本的CRUD操作,并且在领域建模方面提供了强大的支持,包括一对一、一对多和多对多的关联。GORM支持继承,...
Grails的脚手架基于GORM(Grails Object Relational Mapping)和Groovy模板引擎,通过解析Domain Class自动构建出Controller、View以及相应的模板文件。在运行时,这些文件负责处理数据的增删改查操作。了解这一工作...
首先,我们需要创建数据库模型,这通常涉及到定义领域类(Domain Classes),这些类对应于数据库中的表,并通过Grails的ORM(对象关系映射)自动与数据库交互。 三、数据库设计 在Grails中,使用GORM(Grails ...
GORM 是 Grails 的内置 ORM 框架,它允许开发者使用 Domain Class 来定义数据模型,并自动提供数据库操作。GORM 支持 Hibernate 和 ActiveJDBC,使得数据库操作更加简单。 **Controllers** Controllers 在 Grails ...
4. **Grails MVC**:深入理解Model-View-Controller架构,包括Domain Classes(模型)、Controllers(控制器)和Views(视图)的使用。 5. **GORM数据库交互**:学习如何使用GORM进行数据持久化,包括定义领域类、...