Spring Batch Cadre de la création Automatique de Table des Lots
Je viens de créer un lot de travail à l'aide de Spring Batch, mais je n'ai pas de Base de données des privilèges pour exécuter CRÉER SQL. Lorsque j'essaie d'exécuter le travail par lots que j'ai frappé l'erreur, tandis que le cadre essayé de créer TABLE_BATCH_INSTANCE. J'ai essayer de désactiver le
<jdbc:initialize-database data-source="dataSource" enabled="false">
...
</jdbc:initialize-database>
Mais après j'ai essayé j'ai toujours frappé l'erreur
org.springframework.jdbc.BadSqlGrammarException: PreparedStatementCallback; bad SQL grammar [SELECT JOB_INSTANCE_ID, JOB_NAME from BATCH_JOB_INSTANCE where JOB_NAME = ? and JOB_KEY = ?]; nested exception is java.sql.SQLSyntaxErrorException: ORA-00942: table or view does not exist
De toute façon possible de désactiver le SQL, je veux juste tester mon lecteur graveur et le processeur fonctionne correctement.
OriginalL'auteur Einn Hann | 2015-10-21
Vous devez vous connecter pour publier un commentaire.
Spring Batch utilise la base de données pour enregistrer les métadonnées pour ses récupérer/fonctionnalité nouvelle tentative.
Si vous ne pouvez pas créer des tables dans la base de données, puis vous devez désactiver ce comportement
Si vous pouvez créer le lot de tables de métadonnées, mais pas dans d'exécution puis vous pouvez créer manuellement
Sergio, juste une simple question, je peux l'enlever/éviter de créer ces tables ? Je suis juste à l'aide de spring batch pour obtenir des données à partir d'une table de DB
Les sushis, c'est ce que le premier des options que j'ai énumérés faire ("Si vous ne pouvez pas créer des tables dans la base de données de...")
OriginalL'auteur Sergio
Avec Spring Boot 2.0 vous avez probablement besoin de ceci:
https://docs.spring.io/spring-boot/docs/2.0.0.M7/reference/htmlsingle/#howto-initialize-a-spring-batch-database
Par défaut, il ne fera que créer des tableaux si vous utilisez une base de données intégrée.
Ou
À la désactivation permanente.
OriginalL'auteur Pim Hazebroek
Pour activer la création automatique de printemps, les données concernant le lot-schéma il suffit d'ajouter cette ligne à votre ressort de l'application.fichier de propriétés :
printemps.lot.initialiser-schema=toujours
Pour comprendre plus au sujet de Spring batch méta-schéma de données :
https://docs.spring.io/spring-batch/trunk/reference/html/metaDataSchema.html
OriginalL'auteur BlaCk HoLe
Semble idiot, mais quelqu'un peut avoir le même problème.
J'ai reçu cette erreur après la chute de toutes les tables d'une base de données. Quand j'ai essayé de démarrer le Spring Batch, j'ai reçu le message d'erreur:
et:
Ce qui s'est passé pour moi parce que je baisse des tables, sans redémarrer le service. Le service a commencé et recevoir les métadonnées de base de données avec le Lot de tables de la base de données. Après la chute et de ne pas redémarrer le serveur, le Spring Batch pensé que les tables existe toujours.
Après redémarrage, le Spring Batch server et exécutez à nouveau le lot, les tables ont été créées sans erreur.
OriginalL'auteur Dherik
<jdbc:initialize-database/>
balise est analysée par le Ressort à l'aideInitializeDatabaseBeanDefinitionParser
. Vous pouvez essayer de débogage de cette classe dans votre IDE pour s'assurer que les valeurs sont choisies pourenabled
attribut. Aussi cette valeur peut être désactivée à l'aide de la JVM paramètre-Dspring.batch.initializer.enabled=false
Essayez d'exécuter "SÉLECTIONNEZ JOB_INSTANCE_ID, JOB_NAME de BATCH_JOB_INSTANCE où JOB_NAME = xxx et JOB_KEY =xxx" de client de base de données avec les informations d'identification que vous utilisez pour le Printemps Lot de source de données de configuration et de voir si vous avez des problèmes d'accès.
OriginalL'auteur Shailendra
Et assurez-vous que vous utilisez est compatible avec printemps-jdbc -version avec printemps-lot.
Plus probablement spring-jdbc-3.2.2.RELEASE.JAR compatible.
OriginalL'auteur Shalika
cela fonctionne pour moi: Printemps boot 2.0
OriginalL'auteur kozla13
Lors de l'exécution avec Ressort de Démarrage:
Running with Spring Boot v1.5.14.RELEASE, Spring v4.3.18.RELEASE
Ce devrait être suffisant:
L'initialiser-schéma n'a pas de travail pour ce Printemps version de démarrage.
Après que j'ai été en mesure de copier les scripts SQL à partir du printemps-core pot et modifier la table de capitalisation étant donné que c'était mon problème avec le automatique la création de la table sous Windows/Mac/Linux.
OriginalL'auteur Investigator