#annotations #quarkus
Вопрос:
Я указываю имя коллекции @MongoEntity следующим образом:
@MongoEntity(collection = "collection_name_from_properties")
но я хотел бы указать его из файла application.properties, как я делаю для свойства класса:
@ConfigProperty(name = "application_property_param")
String myConfigParam;
Я безуспешно пытался сделать то же самое, что и весной:
@MongoEntity(collection = "${collection_name_from_properties}")
Есть идеи о том, как этого достичь?
Комментарии:
1. Насколько я знаю, это невозможно, единственное, что читается из файла свойств в отношении этой аннотации, — это база данных, а не имя коллекции, почему вы хотите иметь динамические имена коллекций?
2. Здесь вы можете ознакомиться с документацией аннотации javadoc.io/static/io.quarkus/quarkus-mongodb-panache/1.2.0.CR1/…
3. @JavierToja В случае, если имена коллекций необходимо изменить в базе данных mongo, мне нужно иметь возможность обновлять имена с помощью application.properties без необходимости выпуска новой версии клиента. Документация не помогает.
4. Ну, у вас есть только один выбор-использовать простые POJOS и иметь все имена ваших коллекций в файле свойств, затем в вашем слое DAO сделайте привязку каждого имени коллекции и класса POJO для вашей модели, но забудьте об использовании щегольства, перейдите просто в клиент mongo
Ответ №1:
@MongoEntity
это относительно новая функция для Quarkus, и, насколько я знаю, нет способа сделать это с помощью щегольства.
Если вы хотите использовать Панаш, лучшее, что вы могли бы сделать, — это жестко закодировать имена всех коллекций на данный момент, пока новое обновление потенциально не решит эту проблему.
Однако я бы рекомендовал вам использовать клиент Mongo, если вам нужны более продвинутые операции Mongo.