当涉及到grails时,我是一个完整的菜鸟(当涉及到groovy时仍然非常无声)所以如果这是一个愚蠢的问题我会道歉。
我正在构建一个简单的Web应用程序,我想基于文件系统对象(即目录结构和文件类型)而不是数据库数据来控制应用程序中的部分域。这样做有多容易,或者与GORM交织在一起的域对象是不值得尝试的?
答案 0 :(得分:9)
几个星期前我自己遇到了这个问题。
您只需将以下代码段添加到Domain Class
。
def isAttached()
{
return false
}
现在它没有连接到您的数据库。瞧!
答案 1 :(得分:4)
您也可以使用:
class YourDomainClass {
static mapWith = "none" // disable persistence for this domain class
请参阅grails documentation和this 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)