A partir de Jmoordbcore 1.3.0 es posible generar de manera dinámica colecciones en MongoDB.
No aplica para entidades que utilizan referencias.
Sin especificar el nombre de base de datos o colección, se toma la información del archivo microprofile-config.properties.
#-- Database
mongodb.database=accreditation
mongodb.database1=sft
mongodb.database2=practicadb
En el controller se realiza.
@Path("icono")
@RolesAllowed({"admin"})
public class IconoController {
@Inject
IconoRepository iconoRepository;
@POST
@RolesAllowed({"admin"})
public Response save(
@RequestBody(description = "Crea un nuevo icono.", content = @Content(mediaType = "application/json", schema = @Schema(implementation = Icono.class))) Icono icono) {
Optional<Icono> iconoOptional = iconoRepository.save(icono);
if (iconoOptional.isPresent()) {
saveHistory(icono);
return Response.status(201).entity(iconoOptional.get()).build();
} else {
return Response.status(400).entity("Error " + iconoRepository.getJmoordbException().getLocalizedMessage()).build();
}
}
}
Agregando un nombre de base de datos y colección
Solo tiene que utilizar el método setDynamicCollection().
@Path("icono")
@RolesAllowed({"admin"})
public class IconoController {
@Inject
IconoRepository iconoRepository;
@POST
@RolesAllowed({"admin"})
public Response save(
@RequestBody(description = "Crea un nuevo icono.", content = @Content(mediaType = "application/json", schema = @Schema(implementation = Icono.class))) Icono icono) {
iconoRepository.setDynamicDatabase("database2");
iconoRepository.setDynamicCollection("icono_2");
Optional<Icono> iconoOptional = iconoRepository.save(icono);
if (iconoOptional.isPresent()) {
saveHistory(icono);
return Response.status(201).entity(iconoOptional.get()).build();
} else {
return Response.status(400).entity("Error " + iconoRepository.getJmoordbException().getLocalizedMessage()).build();
}
}
}
Top comments (0)