繁体   English   中英

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

[英]Do grails domain classes have to be tied to a database?

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

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

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

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

def isAttached() 
{
   return false
}

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

您还可以使用:

class YourDomainClass {

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

请参阅grails文档此答案 似乎已在Grails 2.0.1中添加,但在版本2.3.0之前未记录。

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

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

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

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

没有像您所描述的那样将域类映射到文件系统对象的内置方法,但同样不要求您的域类映射到关系数据库。 如何创建不使用关系数据库的Grails应用程序的主题在这里这里 (可能在别处)解决。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM