我有这样的域类:
class Document {
String mime;
String name;
byte[] content;
static mapping = {
content lazy:true;
}
}
我想对“内容”列启用延迟加载,因为应用程序可以执行某些操作而无需访问此列。
但懒惰:真实选项不起作用......任何想法或解决方法?
答案 0 :(得分:5)
关于使用Hibernate注释来懒惰加载特定列,有一些讨论here。
另一种可能性是将Document对象分成两部分。像这样:
class Document {
String mime
String name
DocumentContent content
}
class DocumentContent {
static belongsTo = [document:Document]
byte[] data
}
由于这是一种关系,GORM默认会懒惰地加载DocumentContent。
答案 1 :(得分:4)
你的意思是应用程序做了些什么?你想要建立什么?
FYI。渴望和延迟加载通常与关系有关,默认情况下,grails启用了延迟加载。 e.g。“
Class Book{
static belongsTo = Author
String Name
Author author
}
Class Author{
static hasMany = [books:Book]
String Name
}
def author = Author.get(author_id)
def authorBooks = author.books //===> collection with lazy association by default
在你的代码中没有任何关系。 content是Document的一个属性,因此延迟加载不适用于此。
http://grails.org/doc/1.0.x/guide/5.%20Object%20Relational%20Mapping%20(GORM).html