8

当谈到 grails 时,我是一个完全的菜鸟(当谈到 groovy 时我仍然很菜鸟),所以如果这是一个愚蠢的问题,我深表歉意。

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

4

4 回答 4

9

几周前我自己也遇到了这个问题。

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

def isAttached() 
{
   return false
}

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

于 2012-10-17T02:20:44.310 回答
4

您还可以使用:

class YourDomainClass {

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

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

于 2014-08-14T17:51:32.407 回答
1

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

于 2010-08-16T07:45:15.730 回答
1

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

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

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

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

于 2010-08-16T07:16:09.863 回答