java - data - Spring MongoRepository se está actualizando o subiendo en lugar de insertar
spring data mongodb (2)
Se supone que guardar , por definición, actualizar un objeto en el estilo de inserción, actualizar si está presente e insertar si no. Lea la documentación de la operación de save
en el sitio website MongoDb
La operación de inserción en mongodb tiene el comportamiento que espera, pero de la documentación de MongoRepository parece que la inserción se delega para guardar, por lo que no hará ninguna diferencia. Pero puedes intentarlo y ver si funciona para ti. De lo contrario, simplemente puede hacer una obtención antes para verificar si el objeto existe, ya que es una búsqueda de índice que será rápida.
Estoy usando un
org.springframework.data.mongodb.repository.MongoRepository
Comienzo con una base de datos vacía y creo un objeto con _id = 1234
por ejemplo, y configuro algún otro campo de cadena en hello
por ejemplo, y luego hago:
repository.save(object);
Todo está bien, guarda el documento en MondoDB.
Creo un objeto NUEVO, configuro el mismo _id = 1234
pero configuro el otro campo de Cadena a world
y luego a otro guardado:
repository.save(newObject);
Resultados: el guardado funciona pero actualiza el objeto original.
Resultados esperados: esto debería fallar con una DuplicateKeyException
ya que _id
es único y estoy usando 2 objetos separados al hacer cada guardado.
Defecto en primavera o estoy haciendo algo mal?
la aplicación se actualizará solo cuando tengas la anotación @Id para uno de los campos, luego de que una dificultad larga haya encontrado esto
@Document(collection="bus")
public class Bus {
// @Indexed(unique=true, direction=IndexDirection.DESCENDING, dropDups=true)
@Id
private String busTitle;
private int totalNoOfSeats;
private int noOfSeatsAvailable;
private String busType;
}
pero de alguna manera no pude usar @Indexed (unique = true, direction = IndexDirection.DESCENDING, dropDups = true)