Я хотел бы сопоставить класс домена с DBCollection на основе параметра, установленного в приложении Grails. Я относительно новичок в Spring, Grails и MongoDB.
У меня есть база данных mongodb с несколькими большими коллекциями, и я хотел бы, чтобы пользователь мог выбрать, какую коллекцию сопоставить с классом домена. В идеале доменный класс можно было бы переназначать снова и снова, переключаясь между разными коллекциями.
Я разрабатываю переднюю часть веб-приложения, а внутренняя часть обрабатывается в другом месте... Я знаю имя базы данных Mongodb, но количество и имя коллекций в этой базе данных будут неизвестны.
К сожалению, нотация Entity Morphia принимает только константу String, поэтому я не могу передать ей что-то динамическое. Я думаю, что мне нужно вручную удалить класс домена, изменить настройки коллекции и переназначить класс (возможно, удалить bean-компоненты?). Я был бы признателен за любые предложения о том, как это сделать, предпочтительно с помощью плагина mongodb-morphia.
Я создал класс домена mongodb, подобный этому:
package x
import java.util.Date;
import com.google.code.morphia.annotations.Embedded;
import com.google.code.morphia.annotations.Entity;
@Entity("someCollection")
class MongoLog {
def Mongo
def someService
Date a
String b
String c
Double d
static constraints = {
a(nullable:true)
b(nullable:true)
c(nullable:true)
d(nullable:true)
}
}
P.S. Я попытался использовать статическое сопоставление, но плагин mongodb-morphia, похоже, не зарегистрировал указанную мной коллекцию.
Спасибо