MongoDB с загрузочным приложением Spring для получения встроенного jsonJAVA

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

Сообщение Anonymous »

Здравствуйте, я учусь реализовывать функции MongoDB с помощью приложения Spring Boot.
Вопрос довольно простой, как мне заставить MongoTemplate.findOne получать полный объект.
Мой класс сущности User ниже.

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

@Document(collection = "users")
@Data
@ToString
public class User {

@MongoId(targetType = FieldType.OBJECT_ID)
private String id;

@Size(max = 20)
@NotBlank
private String username;

@NotBlank
@Size(max = 50)
@Email
private String email;

@NotBlank
private String passwordHash;

private Set roles = new HashSet();

private Profile profile;
private Date createdAt;
private Date updatedAt;
public User() {
this.createdAt = new Date();
this.updatedAt = new Date();
}
public User(String username, String email, String passwordHash, String firstName, String lastName, String bio, String profilePicture) {
this.profile = new Profile(firstName, lastName, bio, profilePicture);
this.username = username;
this.email = email;
this.passwordHash = passwordHash;
this.createdAt = new Date();
this.updatedAt = new Date();
}

public User(String username, String email, String passwordHash) {
this.username = username;
this.email = email;
this.passwordHash = passwordHash;
this.createdAt = new Date();
this.updatedAt = new Date();
}

public User(String username, String email, String passwordHash, Profile profile) {
this(username, email, passwordHash);
this.profile = profile;
}

@Data
@ToString
@AllArgsConstructor
@NoArgsConstructor
public static class Profile {

@Size(max = 50)
@NotBlank
private String firstName;

@Size(max = 50)
@NotBlank
private String lastName;

@Size(max = 300)
private String bio;
private String profilePicture;
}
}
UserDao.findByUsername()

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

public Optional findByUsername(String username) {
Query query = new Query();
query.addCriteria(Criteria.where("username").is(username));
query.fields()
.include("username")
.include("email")
.include("createdAt")
.include("roles")
.include("passwordHash")
.include("profile");
Optional user = Optional.ofNullable(mongoTemplate.findOne(query, User.class));
return user;
}
Когда я запускаю этот метод, он не извлекает объект профиля, он всегда равен нулю.
Буду благодарен за любую помощь. Я обдумывал это, пробовал и GenAI, но безуспешно.
Если требуется какой-либо другой фрагмент кода, дайте мне знать.

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

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

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

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

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

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