Значение аннотации из application.propeties для @MongoEntity

#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.