2014-12-12 3 views
0

я должен хранить в Монго некоторых документы, которые должны быть унаследованы от класса из внешней библиотеки (баночки):Игнорировать родительский класс полой сериализации

public class ExternalLibraryClass { 
    private EventContainer eventContainer; 
} 

public class MyDocument extends ExternalLibraryClass { 
    private String firstName; 
    private String lastName; 
} 

Spring Data сериализующего eventContainer поля из ExternalLibraryClass, как и ожидался. Как я могу заставить игнорировать это поле?

ответ

0

Вы должны быть в состоянии сделать это, используя custom converters. Нечто подобное

public class MyDocumentConverter implements Converter<MyDocument, DBObject> { 

    public DBObject convert(MyDocument source) { 
    DBObject dbo = new BasicDBObject(); 
    dbo.put("firstName", source.getFirstName()); 
    dbo.put("lastName", source.getLastName()); 
    return dbo; 
    } 
} 

EDIT

Не могу гарантировать это будет работать, но лучше было бы создать конвертер для ExternalLibraryClass, и игнорировать eventContainer

public class ExternalLibraryClassConverter implements Converter<ExternalLibraryClass, DBObject> { 

    public DBObject convert(ExternalLibraryClass source) { 
     DBObject dbo = new BasicDBObject(); 
    return dbo; 
    } 
} 

Опять же, это просто идея, не пробовал, не удивился бы, если она не сработает.

+0

Спасибо Predrag, но что с ситуацией, когда у меня много классов, унаследованных от ExternalLibraryClass (в настоящее время у меня около 10 реализаций)? –

+0

Проверьте мой отредактированный ответ (но не ожидайте его работы :)) –

Смежные вопросы