grails域类必须绑定到数据库吗?

时间:2010-08-16 01:52:37

标签: grails groovy grails-domain-class

当涉及到grails时,我是一个完整的菜鸟(当涉及到groovy时仍然非常无声)所以如果这是一个愚蠢的问题我会道歉。

我正在构建一个简单的Web应用程序,我想基于文件系统对象(即目录结构和文件类型)而不是数据库数据来控制应用程序中的部分域。这样做有多容易,或者与GORM交织在一起的域对象是不值得尝试的?

4 个答案:

答案 0 :(得分:9)

几个星期前我自己遇到了这个问题。

您只需将以下代码段添加到Domain Class

即可
def isAttached() 
{
   return false
}

现在它没有连接到您的数据库。瞧!

答案 1 :(得分:4)

您也可以使用:

class YourDomainClass {

    static mapWith = "none" // disable persistence for this domain class

请参阅grails documentationthis answer。似乎已在Grails 2.0.1中添加,但在版本2.3.0之前未记录。

答案 2 :(得分:1)

有两种方法可以做到这一点。

首先,您可以将映射到文件系统数据的属性声明为瞬态,并在调用getter / setter时转到文件系统(您必须覆盖它们)。您也可以使用onLoad加载它们,如果您需要它们始终在内存中。

第二 - Hibernate处理持久性。 Hibernate允许您定义自己的用户类型,可以按照您想要的方式处理持久性。这种方式可能会更透明地发生(虽然你必须确保你很好地理解hibernate,以确保没有任何副作用,我不确定)。

http://i-proving.com/space/Technologies/Hibernate/User+Types+in+Hibernate

答案 3 :(得分:1)

没有像您所描述的那样将域类映射到文件系统对象的内置方法,但同样不要求您的域类映射到关系数据库。讨论了如何创建不使用关系数据库的Grails应用程序的主题 herehere(可能还有其他地方)。