Spring data MongoDB несколько баз данных

Мне было интересно, могут ли весенние данные для MongoDB обрабатывать несколько баз данных и выполнять запросы и вставки между базами данных.

например, если я хочу сохранить EntityA в БД dbA и EntityB в dbB, а EntityA имеет ссылку на EntityB, будут ли Spring Data генерировать правильный DBRef, указывающий на правильную коллекцию и правильную базу данных?

Смогу ли я затем запросить EntityA, а затем, в конечном итоге, ленивую выборку EntityB?

Morphia не имеет этой функциональности наряду с другими вещами, и мне было интересно, есть ли она в данных Spring, прежде чем совершить большое погружение и отказаться от Morphia.


person azpublic    schedule 01.03.2013    source источник
comment
Мне тоже был бы интересен ответ, это ценный вопрос. Тем не менее, я думаю, вам следует попробовать это только на установке Hello World, и сообщить о своих выводах в качестве ответа ... Я думаю, что это очень поможет будущим искателям этой страницы!   -  person ppeterka    schedule 01.03.2013


Ответы (1)


Аннотация DbRef имеет атрибут db, чтобы вы могли определить базу данных, в которой будет храниться ссылка. Итак, предположим, что такая модель:

class EntityA {
  @DbRef(db = "dbB") EntityB entityB;
}

class EntityB { … }

interface ARepository extends Repository<EntityA, Long> { … }
interface BRepository extends Repository<EntityB, Long> { … }

ваш клиентский код должен выглядеть примерно так:

EntityB b = new EntityB(…);
EntityA a = new EntityA(…);
a.setB(b);

// store A manually first   
aRepository.save(a);
bRepository.save(b);
person Oliver Drotbohm    schedule 03.03.2013
comment
Спасибо, Оливер. Я попытался установить атрибут db в аннотации, но кажется, что поле $db DBRef не записано в базе данных. Это нормально ? Есть ли у Spring собственный способ извлечения объекта из второй базы данных без поля $db? Спасибо. - person azpublic; 04.03.2013