2013-03-01 4 views
0

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

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

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

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

+0

Меня тоже будет интересовать ответ, это ценный вопрос. Тем не менее, я думаю, вы должны попробовать это только в Hello World, как setup, и сообщить свои результаты в качестве ответа ... Я думаю, что это поможет будущим искателям этой страницы! – ppeterka

ответ

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); 
+0

Спасибо Оливер. Я попытался установить атрибут db в аннотации, но кажется, что поле $ db DBRef не записано в базе данных. Это нормально ? Имеет ли Spring собственный способ извлечения объекта из второй базы данных без поля $ db? Благодарю. – azpublic

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