MongoDB неправильно отображает POJO в JavaJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 MongoDB неправильно отображает POJO в Java

Сообщение Anonymous »

У меня есть база данных mongodb и классы POJO для них. Вот один из них:

Код: Выделить всё

import lombok.*;
import org.bson.codecs.pojo.annotations.BsonProperty;
import org.bson.types.ObjectId;

@AllArgsConstructor
@NoArgsConstructor
@ToString
@Builder
@Getter
public class Audience {
@BsonProperty(value = "id")
private ObjectId id;
@BsonProperty(value = "aud_business")
private double business;
@BsonProperty(value = "media_info")
private String mediaInfo;
@BsonProperty(value = "aud_type")
private String type;
@BsonProperty(value = "places_amount")
private int places;
}
Я тестировал получение объектов Audience из коллекции «audience», но MongoCollection возвращает мне только пустые объекты (инициализированные с помощью NoArgsConstructor), а Document работает как надо.< /p>

Код: Выделить всё

    public static void main(String[] args) {
ConnectionString connectionString = new ConnectionString("mongodb://localhost:27017");
CodecRegistry pojoCodecRegistry = fromProviders(PojoCodecProvider.builder()
.automatic(true)
.build());
CodecRegistry codecRegistry = fromRegistries(
MongoClientSettings.getDefaultCodecRegistry(),
pojoCodecRegistry);
MongoClientSettings clientSettings = MongoClientSettings.builder()
.applyConnectionString(connectionString)
.codecRegistry(codecRegistry)
.build();

try (MongoClient mongoClient = MongoClients.create(clientSettings)) {
MongoDatabase db = mongoClient.getDatabase("curriculum");
MongoCollection audience1 = db.getCollection("audience", Document.class);
MongoCollection audience2 = db.getCollection("audience", Audience.class);
Document audience3 = audience1.find(eq("media_info", "sdlkjf")).first();
Audience audience4 = audience2.find(eq("media_info", "sdlkjf")).first();

System.out.println(audience3);
System.out.println(audience4);
}

Код: Выделить всё

Document{{_id=67177a2b530cb42a1674eb7a, aud_business=50.0, id=67177a2b530cb42a1674eb79, media_info=sdlkjf, places_amount=12, aud_type=dslkjf}}
Audience(id=null, business=0.0, mediaInfo=null, type=null, places=0)
Я пробовал играть с BsonProperty, но ничего не помогло.

Подробнее здесь: https://stackoverflow.com/questions/791 ... ly-in-java
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»