2014-09-18 3 views
0

У меня есть два класса с отношениями 1-1. классы являются окончательными, поэтому наследования нет.Как удалить имя класса из ссылок в mongodb + datanucleus

@PersistantCapable 
@DatastoreIdentity(strategy = IdGeneratorStrategy.IDENTITY) 
class A { 
    @PrimaryKey 
    @Column(name = "_id") 
    @Persistent(valueStrategy = IdGeneratorStrategy.INCREMENT 
    long id; 
} 

class B { A a; } 

Вся система работает правильно, но ссылки представлены очень неэффективно. Например: {a: "full.class.name.A: 3"}. Я хочу удалить имена классов и использовать целые числа для хранения идентификаторов, это улучшит скорость (особенно по индексам) и потребление дискового пространства.

+1

Вы не можете использовать DatastoreIdentity, а также иметь поле PrimaryKey. –

ответ

0

Простой взгляд на their code предполагает, что вам необходимо внести что-то подобное в качестве опции, поднять проблему и внести изменения в код. Вероятно, это не будет вариант по умолчанию, так как в 90 +% систем есть наследование, поэтому класс связанного объекта обычно важен. MongoDB также, похоже, поддерживает «DBRef», не уверен, насколько он эффективен, но он отмечен в этом коде как TODO.

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

  • Нет связанных вопросов^_^