Это один образец документа (строки) из коллекции (таблицы) с именем product
, которая находится в MongoDB:
{
"_id" : ObjectId("5cb39171528a28f831f"),
"seller" : "Product Seller 1",
"title" : "Product Title 1",
"price" : "159.75",
"brand" : "Product Brand 1",
"productId" : NumberInt(247)
}
Модель Java для этой коллекции выглядит следующим образом:
@Entity(value = "product", noClassnameStored = true)
@Data
public class Product {
@Id
@Property("_id")
private ObjectId objectId;
private String seller;
private String title;
private String price;
private String brand;
private Long productId;
}
Я использую Morphia в качестве драйвера Java MongoDB здесь. И я использую аннотацию Lombok @Data, которая предоставляет конструктор, геттеры и сеттеры.
Модель отлично работает и способна извлекать данные из БД. Мое новое требование - добавить дополнительное поле в модель. Имя нового поля будет stringObjectId
, в котором будет храниться значение objectId
в формате String.
Обратите внимание, что в документе БД не будет никаких изменений. То есть в документ БД не добавляется новое поле.
Я хочу, чтобы при извлечении данных из коллекции в виде списка или отдельной строки
query.asList();
значение в stringObjectId
также должно быть заполнено. Примерно так:
stringObjectId = objectId.toString()
Не так давно я пытался переопределить сеттеры и конструктор этой модели, чтобы установить значение в переменной stringObjectId
, но, похоже, ничего не работает. Есть ли способ, которым это может быть достигнуто?