es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Ampliando el esquema de tabla de metadatos de Spring Batch.

¿Es posible ampliar el esquema de tabla de metadatos de Spring Batch? Por algunas razones operativas y otras, se desea contar con un conjunto de tablas de metadatos que sea utilizado por múltiples aplicaciones. Sé que hay soporte para el prefijo en el nombre de la tabla que se puede usar para tener un conjunto de tablas de metadatos para cada aplicación de Batch (caso de uso), pero supongamos por ahora que no se me permite hacer eso :).

Para tener trabajos basados en la aplicación, ¿puedo agregar una nueva tabla, digamos BATCH_APPLICATION? Luego cambiaría la tabla BATCH_JOB_INSTANCE para tener una clave foránea de APP_ID que apunte a BATCH_APPLICATION. De esta manera, cada trabajo está en contexto de una aplicación y, por lo tanto, podemos tener varias aplicaciones que usen el mismo conjunto de tablas de metadatos. Aquí hay un cambio potencial como diagrama de entidad-relación.

Ahora mis preguntas son:

  1. ¿Cómo cambiar las clases JAVA correspondientes Job y JobInstance y todo el CRUD asociado para reflejar los cambios anteriores? Supongo que necesito nuevas clases que extiendan Job y JobInstance, digamos AppJob y AppJobInstance. También extiendo JobInstanceDao, digamos AppJobInstanceDao. Luego, para engancharlo a la fábrica de repositorios JPA, etc., necesito extender JobRepositoryFactoryBean, principalmente createJobInstanceDao () para devolver mi nuevo AppJobInstanceDao que usa mi nueva clase AppJobInstance. Necesito trabajar todos los detalles finos, pero quería entender si estoy pensando en la dirección correcta o si me estoy desviando totalmente.

  2. ¿Cuáles son las cosas clave a tener en cuenta, además de todos los cambios relacionados con Java JobRepository?

  3. ¿Es realmente una solución práctica o es un enfoque totalmente equivocado?

Sería bueno escuchar a los expertos de los proyectos Spring Batch, ya que tales aportes nos ayudarán a llegar a una decisión más pragmática internamente sobre si seguir esta ruta o si profundizar más en por qué las operaciones piensan que el uso del prefijo en el nombre de la tabla no es una opción y qué se puede hacer al respecto.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Respuesta

    1. Sí, estás en el camino correcto. Necesitarás crear nuevas clases que extiendan Job y JobInstance, así como extender las clases JobInstanceDao y JobRepositoryFactoryBean para reflejar los cambios que deseas hacer. Asegúrate de actualizar todas las operaciones CRUD asociadas.

    2. Las cosas clave a tener en cuenta incluyen asegurarse de que todos los cambios sean compatibles con la versión actual de Spring Batch que se esté utilizando, que las migraciones de la base de datos se manejen correctamente y que cualquier cambio en el esquema de metadatos se pruebe exhaustivamente.

    3. Si bien esta solución es posible, puede que no sea el enfoque más práctico. El uso de prefijos de nombre de tabla es una solución común para abordar el problema de múltiples aplicaciones que comparten el mismo conjunto de tablas de metadatos. Puede valer la pena explorar esta opción más a fondo para ver si se puede hacer que funcione para tu caso de uso específico. En última instancia, la mejor solución dependerá de los requisitos y limitaciones específicos de tu proyecto.

Comments are closed.