отложенная загрузка столбцов в классе домена Grails - PullRequest
2 голосов
/ 31 марта 2011

У меня есть класс домена, подобный этому:

class Document {
 String mime;
 String name;
 byte[] content;

 static mapping = {
  content lazy:true;
 }
}

, и я хотел бы включить отложенную загрузку в столбец «контент», потому что приложение делает некоторые вещи без необходимости доступа к этому столбцу.

Но ленивый: верный вариант не сработал ... любая идея или обходной путь?

Ответы [ 2 ]

5 голосов
/ 22 июня 2011

Здесь обсуждается об использовании аннотаций Hibernate для ленивой загрузки определенного столбца.

Другая возможность состоит в том, чтобы разбить ваш объект Document на две части. Как то так:

class Document {
    String mime
    String name
    DocumentContent content
}

class DocumentContent {
    static belongsTo = [document:Document]
    byte[] data
}

Поскольку это отношение, GORM по умолчанию будет лениво загружать DocumentContent.

4 голосов
/ 31 марта 2011

Что вы подразумеваете под приложением, что-то делает?и что вы пытаетесь установить?

К вашему сведению.Стремительная и ленивая загрузка обычно связана с отношениями, по умолчанию в Grails включена отложенная загрузка.например, "

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

...