Saltar al contenido

Mongodb de datos de primavera. Error al generar id

este problema se puede resolver de variadas maneras, sin embargo te compartimos la que en nuestra opinión es la resolución más completa.

Solución:

Los ObjectIds de Mongo no se asignan a un tipo Java Long.

Veo esto en la documentación, en 7.6.1:

http://docs.spring.io/spring-data/mongodb/docs/current/reference/html/#mongo-template.id-handling

Una propiedad o campo de identificación declarado como una cadena en la clase Java se convertirá y se almacenará como un ObjectId si es posible utilizando un Spring Converter. Las reglas de conversión válidas se delegan al controlador MongoDB Java. Si no se puede convertir a un ObjectId, entonces el valor se almacenará como un string en la base de datos

Una propiedad o campo de id declarado como BigInteger en la clase Java se convertirá y se almacenará como un ObjectId utilizando un Spring Converter.

Así que cambie id a String o BigInteger y elimine el argumento de estrategia.

Usando @Id como una cadena funciona bien.

Asegúrese de que su Repositorio se extienda con una Cadena (del mismo tipo que el @Id):

extends MongoRepository

Creo que el problema es que estás usando Entity en vez de Document. Mongo dao debería usar Document anotación y el repositorio debe extender el MongoRepository interfaz. Este sería un ejemplo usando lo que tienes. Primero, querrá agregar la dependencia de mongo a su pom (supongo que está usando Spring Boot Parent, por lo que el número de versión se definirá allí)


    org.springframework.boot
    spring-boot-starter-data-mongodb

import org.springframework.data.annotation.Id; 
import org.springframework.data.mongodb.core.mapping.Document;

@Document(collection = "ACCOUNTS")
public class Account 

    @Id
    private String id;

    ....rest of properties


import org.springframework.data.mongodb.repository.MongoRepository;
public interface AccountRepository extends MongoRepository  
    //any extra queries needed

Si te ha resultado de provecho nuestro artículo, agradeceríamos que lo compartas con más entusiastas de la programación y nos ayudes a difundir nuestro contenido.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *