J'étudie actuellement le printemps, j'ai donc décidé d'écrire les points d'achoppement sous forme de mémorandum ici.
Une introduction approfondie au développement d'applications Spring Java à l'aide de Spring Framework
Page cible: p632-659 Après avoir exécuté l'application, l'erreur suivante s'est produite sur la console.
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource
[org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]:
Invocation of init method failed; nested exception is javax.persistence.PersistenceException:
[PersistenceUnit: default] Unable to build Hibernate SessionFactory; nested exception is
org.hibernate.tool.schema.spi.SchemaManagementException: Schema-validation: missing table [meeting_room]
Caused by: javax.persistence.PersistenceException: [PersistenceUnit: default] Unable to build Hibernate
SessionFactory; nested exception is org.hibernate.tool.schema.spi.SchemaManagementException: Schema-
validation: missing table [meeting_room]
Caused by: org.hibernate.tool.schema.spi.SchemaManagementException:
Schema-validation: missing table [meeting_room]
J'ai pu résoudre l'erreur en ajoutant la description des deux fichiers suivants.
application.properties
spring.datasource.initialization-mode=always
spring.jpa.open-in-view=true
Dans la version précédente, si schema.sql et data.sql étaient placés directement sous src / main / resources, il serait exécuté au démarrage de l'application. Dans la nouvelle version, la valeur par défaut de spring.datasource.initialization-mode est intégrée, et elle est définie pour être exécutée uniquement dans H2. Par conséquent, vous pouvez définir n'importe quoi sur OK en le définissant sur toujours.
hibernate.properties
hibernate.jdbc.lob.non_contextual_creation=true
Créez-le au même emplacement que le fichier application.properties et écrivez la ligne suivante.
Recommended Posts