Very strange SQL Errors when adding additional boolean field to Entity in C

I am having an odd Error in my example application (see the stack trace below).

Boiling this down I was able to introduce the very same error in the Vaadin CRM example application (as described in the Vaadin Book “Building Modern Web Apps with Spring Boot and Vaadin.pdf”) so I thought I show it here using that as example.

The only thing I need to do to trigger the error is to add a boolean field to my entity (in the CRM example the Contact-entity), i.e. to the file Contact.java from the CRM application just add an additional field “private boolean check;” like so:

...
@Email
@NotNull
@NotEmpty
private String email = "";

// I am adding this field:
private boolean check;

}

That’s already enough to cause the below exception when restarting the application!
What is causing this? What am I missing?
Why does an additional boolean field cause all these odd SQL exceptions?

...
__     __                   _  _          _____         _                 _         _    ____  ____   __  __ 
\ \   / /  __ _   __ _   __| |(_) _ __   |_   _| _   _ | |_   ___   _ __ (_)  __ _ | |  / ___||  _ \ |  \/  |
 \ \ / /  / _` | / _` | / _` || || '_ \    | |  | | | || __| / _ \ | '__|| | / _` || | | |    | |_) || |\/| |
  \ V /  | (_| || (_| || (_| || || | | |   | |  | |_| || |_ | (_) || |   | || (_| || | | |___ |  _ < | |  | |
   \_/    \__,_| \__,_| \__,_||_||_| |_|   |_|   \__,_| \__| \___/ |_|   |_| \__,_||_|  \____||_| \_\|_|  |_|
                                                                                                             

2021-01-13 23:29:56,886 INFO  [restartedMain]
 org.springframework.boot.StartupInfoLogger: Starting Application on Surfy with PID 99720 (U:\Documents\eclipse\workspace_Vaadin\vaadin-tutorial-crm\target\classes started by mmo in U:\Documents\eclipse\workspace_Vaadin\vaadin-tutorial-crm)
2021-01-13 23:29:56,889 INFO  [restartedMain]
 org.springframework.boot.SpringApplication: No active profile set, falling back to default profiles: default
2021-01-13 23:29:56,935 INFO  [restartedMain]
 org.springframework.boot.logging.DeferredLog: Devtools property defaults active! Set 'spring.devtools.add-properties' to 'false' to disable
2021-01-13 23:29:56,935 INFO  [restartedMain]
 org.springframework.boot.logging.DeferredLog: For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG'
2021-01-13 23:29:57,456 INFO  [restartedMain]
 org.springframework.data.repository.config.RepositoryConfigurationDelegate: Bootstrapping Spring Data JPA repositories in DEFERRED mode.
2021-01-13 23:29:57,524 INFO  [restartedMain]
 org.springframework.data.repository.config.RepositoryConfigurationDelegate: Finished Spring Data repository scanning in 60ms. Found 2 JPA repository interfaces.
2021-01-13 23:29:58,751 INFO  [restartedMain]
 org.springframework.boot.web.embedded.tomcat.TomcatWebServer: Tomcat initialized with port(s): 8080 (http)
2021-01-13 23:29:58,759 INFO  [restartedMain]
 org.apache.juli.logging.DirectJDKLog: Initializing ProtocolHandler ["http-nio-8080"]

2021-01-13 23:29:58,760 INFO  [restartedMain]
 org.apache.juli.logging.DirectJDKLog: Starting service [Tomcat]

2021-01-13 23:29:58,760 INFO  [restartedMain]
 org.apache.juli.logging.DirectJDKLog: Starting Servlet engine: [Apache Tomcat/9.0.37]

2021-01-13 23:29:58,883 INFO  [restartedMain]
 org.apache.juli.logging.DirectJDKLog: Initializing Spring embedded WebApplicationContext
2021-01-13 23:29:58,883 INFO  [restartedMain]
 org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext: Root WebApplicationContext: initialization completed in 1948 ms
2021-01-13 23:29:58,982 INFO  [restartedMain]
 com.zaxxer.hikari.HikariDataSource: HikariPool-1 - Starting...
2021-01-13 23:29:59,081 INFO  [restartedMain]
 com.zaxxer.hikari.HikariDataSource: HikariPool-1 - Start completed.
2021-01-13 23:29:59,090 INFO  [restartedMain]
 org.springframework.boot.autoconfigure.h2.H2ConsoleAutoConfiguration: H2 console available at '/h2-console'. Database available at 'jdbc:h2:mem:43e1687c-28f8-45d4-9cd0-862e2ef7d686'
2021-01-13 23:30:01,900 INFO  [restartedMain]
 com.vaadin.flow.spring.VaadinServletContextInitializer$DevModeServletContextListener: Search for subclasses and classes with annotations took 2 seconds
2021-01-13 23:30:01,904 INFO  [restartedMain]
 com.vaadin.flow.server.startup.DevModeInitializer: Starting dev-mode updaters in U:\Documents\eclipse\workspace_Vaadin\vaadin-tutorial-crm folder.
2021-01-13 23:30:01,938 INFO  [restartedMain]
 com.vaadin.flow.server.frontend.scanner.FullDependenciesScanner: Visited 102 classes. Took 19 ms.
2021-01-13 23:30:01,957 INFO  [restartedMain]
 com.vaadin.flow.server.frontend.TaskRunNpmInstall: Skipping `npm install` because the frontend packages are already installed in the folder 'U:\Documents\eclipse\workspace_Vaadin\vaadin-tutorial-crm\node_modules' and the hash in the file 'U:\Documents\eclipse\workspace_Vaadin\vaadin-tutorial-crm\node_modules\.vaadin\vaadin.json' is the same as in 'package.json'
2021-01-13 23:30:01,958 INFO  [restartedMain]
 com.vaadin.flow.server.frontend.TaskCopyFrontendFiles: Copying frontend resources from jar files ...
2021-01-13 23:30:02,054 INFO  [restartedMain]
 com.vaadin.flow.server.frontend.TaskCopyFrontendFiles: Visited 13 resources. Took 96 ms.
2021-01-13 23:30:02,098 INFO  [restartedMain]
 com.vaadin.flow.server.frontend.AbstractUpdateImports: No js modules to update 'U:\Documents\eclipse\workspace_Vaadin\vaadin-tutorial-crm\target\frontend\generated-flow-imports.js' file
2021-01-13 23:30:02,104 INFO  [restartedMain]
 com.vaadin.flow.server.frontend.scanner.FullDependenciesScanner: Visited 102 classes. Took 5 ms.
e[94mVaadin application has been deployed and started to the context path "/".
e[0m2021-01-13 23:30:02,122 INFO  [ForkJoinPool.commonPool-worker-3]
 com.vaadin.flow.server.frontend.TaskRunNpmInstall: Skipping `npm install` because the frontend packages are already installed in the folder 'U:\Documents\eclipse\workspace_Vaadin\vaadin-tutorial-crm\node_modules' and the hash in the file 'U:\Documents\eclipse\workspace_Vaadin\vaadin-tutorial-crm\node_modules\.vaadin\vaadin.json' is the same as in 'package.json'
2021-01-13 23:30:02,124 INFO  [ForkJoinPool.commonPool-worker-3]
 com.vaadin.flow.server.frontend.TaskCopyFrontendFiles: Copying frontend resources from jar files ...
2021-01-13 23:30:02,202 INFO  [restartedMain]
 org.springframework.scheduling.concurrent.ExecutorConfigurationSupport: Initializing ExecutorService 'applicationTaskExecutor'
2021-01-13 23:30:02,214 INFO  [ForkJoinPool.commonPool-worker-3]
 com.vaadin.flow.server.frontend.TaskCopyFrontendFiles: Visited 13 resources. Took 89 ms.
2021-01-13 23:30:02,244 INFO  [ForkJoinPool.commonPool-worker-3]
 com.vaadin.flow.server.frontend.AbstractUpdateImports: No js modules to update 'U:\Documents\eclipse\workspace_Vaadin\vaadin-tutorial-crm\target\frontend\generated-flow-imports.js' file
2021-01-13 23:30:02,252 INFO  [ForkJoinPool.commonPool-worker-3]
 com.vaadin.flow.server.DevModeHandler: Starting webpack-dev-server
2021-01-13 23:30:02,255 INFO  [task-1]
 org.hibernate.jpa.internal.util.LogHelper: HHH000204: Processing PersistenceUnitInfo [name: default]

2021-01-13 23:30:02,312 INFO  [task-1]
 org.hibernate.Version: HHH000412: Hibernate ORM core version 5.4.18.Final
2021-01-13 23:30:02,431 INFO  [task-1]
 org.hibernate.annotations.common.reflection.java.JavaReflectionManager: HCANN000001: Hibernate Commons Annotations {5.1.0.Final}
2021-01-13 23:30:02,566 INFO  [task-1]
 org.hibernate.dialect.Dialect: HHH000400: Using dialect: org.hibernate.dialect.H2Dialect
e[38;5;35m
------------------ Starting Frontend compilation. ------------------
e[0m2021-01-13 23:30:02,692 INFO  [ForkJoinPool.commonPool-worker-3]
 com.vaadin.flow.server.DevModeHandler: Running webpack to compile frontend resources. This may take a moment, please stand by...
2021-01-13 23:30:03,412 WARN  [task-1]
 org.hibernate.tool.schema.internal.ExceptionHandlerLoggedImpl: GenerationTarget encountered exception accepting command : Error executing DDL "create table contact (id bigint not null, check boolean not null, email varchar(255) not null, first_name varchar(255) not null, last_name varchar(255) not null, status varchar(255) not null, company_id bigint, primary key (id))" via JDBC Statement
org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL "create table contact (id bigint not null, check boolean not null, email varchar(255) not null, first_name varchar(255) not null, last_name varchar(255) not null, status varchar(255) not null, company_id bigint, primary key (id))" via JDBC Statement
	at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:67)
	at org.hibernate.tool.schema.internal.SchemaCreatorImpl.applySqlString(SchemaCreatorImpl.java:439)
	at org.hibernate.tool.schema.internal.SchemaCreatorImpl.applySqlStrings(SchemaCreatorImpl.java:423)
	at org.hibernate.tool.schema.internal.SchemaCreatorImpl.createFromMetadata(SchemaCreatorImpl.java:314)
	at org.hibernate.tool.schema.internal.SchemaCreatorImpl.performCreation(SchemaCreatorImpl.java:166)
	at org.hibernate.tool.schema.internal.SchemaCreatorImpl.doCreation(SchemaCreatorImpl.java:135)
	at org.hibernate.tool.schema.internal.SchemaCreatorImpl.doCreation(SchemaCreatorImpl.java:121)
	at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction(SchemaManagementToolCoordinator.java:156)
	at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process(SchemaManagementToolCoordinator.java:73)
	at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:316)
	at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:469)
	at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1259)
	at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:58)
	at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:365)
	at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:391)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "CREATE TABLE CONTACT (ID BIGINT NOT NULL, CHECK BOOLEAN NOT[*]
 NULL, EMAIL VARCHAR(255) NOT NULL, FIRST_NAME VARCHAR(255) NOT NULL, LAST_NAME VARCHAR(255) NOT NULL, STATUS VARCHAR(255) NOT NULL, COMPANY_ID BIGINT, PRIMARY KEY (ID))"; expected "AND, OR, NOCHECK, CHECK, ,, )"; SQL statement:
create table contact (id bigint not null, check boolean not null, email varchar(255) not null, first_name varchar(255) not null, last_name varchar(255) not null, status varchar(255) not null, company_id bigint, primary key (id)) [42001-200]

	at org.h2.message.DbException.getJdbcSQLException(DbException.java:453)
	at org.h2.message.DbException.getJdbcSQLException(DbException.java:429)
	at org.h2.message.DbException.getSyntaxError(DbException.java:243)
	at org.h2.command.Parser.getSyntaxError(Parser.java:1053)
	at org.h2.command.Parser.read(Parser.java:4995)
	at org.h2.command.Parser.readIfMore(Parser.java:1462)
	at org.h2.command.Parser.parseCreateTable(Parser.java:8380)
	at org.h2.command.Parser.parseCreate(Parser.java:6276)
	at org.h2.command.Parser.parsePrepared(Parser.java:903)
	at org.h2.command.Parser.parse(Parser.java:843)
	at org.h2.command.Parser.parse(Parser.java:819)
	at org.h2.command.Parser.prepareCommand(Parser.java:738)
	at org.h2.engine.Session.prepareLocal(Session.java:657)
	at org.h2.engine.Session.prepareCommand(Session.java:595)
	at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1235)
	at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:212)
	at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:201)
	at com.zaxxer.hikari.pool.ProxyStatement.execute(ProxyStatement.java:95)
	at com.zaxxer.hikari.pool.HikariProxyStatement.execute(HikariProxyStatement.java)
	at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:54)
	... 18 common frames omitted
2021-01-13 23:30:03,414 WARN  [task-1]
 org.hibernate.tool.schema.internal.ExceptionHandlerLoggedImpl: GenerationTarget encountered exception accepting command : Error executing DDL "alter table contact add constraint FKpgbqt6dnai52x55o1qvsx1dfn foreign key (company_id) references company" via JDBC Statement
org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL "alter table contact add constraint FKpgbqt6dnai52x55o1qvsx1dfn foreign key (company_id) references company" via JDBC Statement
	at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:67)
	at org.hibernate.tool.schema.internal.SchemaCreatorImpl.applySqlString(SchemaCreatorImpl.java:439)
	at org.hibernate.tool.schema.internal.SchemaCreatorImpl.applySqlStrings(SchemaCreatorImpl.java:423)
	at org.hibernate.tool.schema.internal.SchemaCreatorImpl.createFromMetadata(SchemaCreatorImpl.java:374)
	at org.hibernate.tool.schema.internal.SchemaCreatorImpl.performCreation(SchemaCreatorImpl.java:166)
	at org.hibernate.tool.schema.internal.SchemaCreatorImpl.doCreation(SchemaCreatorImpl.java:135)
	at org.hibernate.tool.schema.internal.SchemaCreatorImpl.doCreation(SchemaCreatorImpl.java:121)
	at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction(SchemaManagementToolCoordinator.java:156)
	at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process(SchemaManagementToolCoordinator.java:73)
	at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:316)
	at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:469)
	at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1259)
	at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:58)
	at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:365)
	at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:391)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "CONTACT" not found; SQL statement:
alter table contact add constraint FKpgbqt6dnai52x55o1qvsx1dfn foreign key (company_id) references company [42102-200]

	at org.h2.message.DbException.getJdbcSQLException(DbException.java:453)
	at org.h2.message.DbException.getJdbcSQLException(DbException.java:429)
	at org.h2.message.DbException.get(DbException.java:205)
	at org.h2.message.DbException.get(DbException.java:181)
	at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:108)
	at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:78)
	at org.h2.command.CommandContainer.update(CommandContainer.java:198)
	at org.h2.command.Command.executeUpdate(Command.java:251)
	at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:228)
	at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:201)
	at com.zaxxer.hikari.pool.ProxyStatement.execute(ProxyStatement.java:95)
	at com.zaxxer.hikari.pool.HikariProxyStatement.execute(HikariProxyStatement.java)
	at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:54)
	... 18 common frames omitted
2021-01-13 23:30:03,420 INFO  [task-1]
 org.hibernate.engine.transaction.jta.platform.internal.JtaPlatformInitiator: HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform]

2021-01-13 23:30:03,435 INFO  [task-1]
 org.springframework.orm.jpa.AbstractEntityManagerFactoryBean: Initialized JPA EntityManagerFactory for persistence unit 'default'
2021-01-13 23:30:03,937 WARN  [restartedMain]
 org.hibernate.engine.jdbc.spi.SqlExceptionHelper: SQL Error: 42102, SQLState: 42S02
2021-01-13 23:30:03,937 ERROR [restartedMain]
 org.hibernate.engine.jdbc.spi.SqlExceptionHelper: Table "CONTACT" not found; SQL statement:
select count(*) as col_0_0_ from contact contact0_ [42102-200]

2021-01-13 23:30:03,947 WARN  [restartedMain]
 org.springframework.context.support.AbstractApplicationContext: Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'contactService': Invocation of init method failed; nested exception is org.springframework.dao.InvalidDataAccessResourceUsageException: could not prepare statement; SQL [select count(*) as col_0_0_ from contact contact0_]
; nested exception is org.hibernate.exception.SQLGrammarException: could not prepare statement
2021-01-13 23:30:03,966 INFO  [task-2]
 org.springframework.boot.devtools.autoconfigure.OptionalLiveReloadServer: LiveReload server is running on port 35729
2021-01-13 23:30:03,967 INFO  [restartedMain]
 org.springframework.orm.jpa.AbstractEntityManagerFactoryBean: Closing JPA EntityManagerFactory for persistence unit 'default'
2021-01-13 23:30:03,968 INFO  [restartedMain]
 org.hibernate.tool.schema.internal.SchemaDropperImpl$DelayedDropActionImpl: HHH000477: Starting delayed evictData of schema as part of SessionFactory shut-down'
2021-01-13 23:30:03,981 INFO  [restartedMain]
 org.springframework.scheduling.concurrent.ExecutorConfigurationSupport: Shutting down ExecutorService 'applicationTaskExecutor'
2021-01-13 23:30:04,211 WARN  [restartedMain]
 org.springframework.beans.factory.support.DisposableBeanAdapter: Invocation of destroy method failed on bean with name 'inMemoryDatabaseShutdownExecutor': org.h2.jdbc.JdbcSQLNonTransientConnectionException: Database is already closed (to disable automatic closing at VM shutdown, add ";DB_CLOSE_ON_EXIT=FALSE" to the db URL) [90121-200]

2021-01-13 23:30:04,211 INFO  [restartedMain]
 com.zaxxer.hikari.HikariDataSource: HikariPool-1 - Shutdown initiated...
2021-01-13 23:30:04,218 INFO  [restartedMain]
 com.zaxxer.hikari.HikariDataSource: HikariPool-1 - Shutdown completed.
2021-01-13 23:30:04,220 INFO  [restartedMain]
 org.apache.juli.logging.DirectJDKLog: Stopping service [Tomcat]

2021-01-13 23:30:04,231 INFO  [restartedMain]
 org.springframework.boot.autoconfigure.logging.ConditionEvaluationReportLoggingListener: 

Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2021-01-13 23:30:04,238 ERROR [restartedMain]
 org.springframework.boot.SpringApplication: Application run failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'contactService': Invocation of init method failed; nested exception is org.springframework.dao.InvalidDataAccessResourceUsageException: could not prepare statement; SQL [select count(*) as col_0_0_ from contact contact0_]
; nested exception is org.hibernate.exception.SQLGrammarException: could not prepare statement
	at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:160)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:415)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1786)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:594)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:516)
	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:324)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:226)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:322)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:897)
	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:879)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:551)
	at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:143)
	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:758)
	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:750)
	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:315)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1237)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1226)
	at com.vaadin.tutorial.crm.Application.main(Application.java:19)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49)
Caused by: org.springframework.dao.InvalidDataAccessResourceUsageException: could not prepare statement; SQL [select count(*) as col_0_0_ from contact contact0_]
; nested exception is org.hibernate.exception.SQLGrammarException: could not prepare statement
	at org.springframework.orm.jpa.vendor.HibernateJpaDialect.convertHibernateAccessException(HibernateJpaDialect.java:281)
	at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:255)
	at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:528)
	at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61)
	at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:242)
	at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:153)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
	at org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:178)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
	at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:95)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212)
	at com.sun.proxy.$Proxy121.count(Unknown Source)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344)
	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:205)
	at com.sun.proxy.$Proxy89.count(Unknown Source)
	at com.vaadin.tutorial.crm.backend.service.ContactService.populateTestData(ContactService.java:69)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:389)
	at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeInitMethods(InitDestroyAnnotationBeanPostProcessor.java:333)
	at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:157)
	... 24 common frames omitted
Caused by: org.hibernate.exception.SQLGrammarException: could not prepare statement
	at org.hibernate.exception.internal.SQLExceptionTypeDelegate.convert(SQLExceptionTypeDelegate.java:63)
	at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:42)
	at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:113)
	at org.hibernate.engine.jdbc.internal.StatementPreparerImpl$StatementPreparationTemplate.prepareStatement(StatementPreparerImpl.java:186)
	at org.hibernate.engine.jdbc.internal.StatementPreparerImpl.prepareQueryStatement(StatementPreparerImpl.java:151)
	at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:2111)
	at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:2048)
	at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:2026)
	at org.hibernate.loader.Loader.doQuery(Loader.java:951)
	at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:352)
	at org.hibernate.loader.Loader.doList(Loader.java:2857)
	at org.hibernate.loader.Loader.doList(Loader.java:2839)
	at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2671)
	at org.hibernate.loader.Loader.list(Loader.java:2666)
	at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:506)
	at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:400)
	at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:219)
	at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1412)
	at org.hibernate.query.internal.AbstractProducedQuery.doList(AbstractProducedQuery.java:1565)
	at org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1533)
	at org.hibernate.query.internal.AbstractProducedQuery.getSingleResult(AbstractProducedQuery.java:1581)
	at org.springframework.data.jpa.repository.support.SimpleJpaRepository.count(SimpleJpaRepository.java:533)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.springframework.data.repository.core.support.ImplementationInvocationMetadata.invoke(ImplementationInvocationMetadata.java:72)
	at org.springframework.data.repository.core.support.RepositoryComposition$RepositoryFragments.invoke(RepositoryComposition.java:382)
	at org.springframework.data.repository.core.support.RepositoryComposition.invoke(RepositoryComposition.java:205)
	at org.springframework.data.repository.core.support.RepositoryFactorySupport$ImplementationMethodExecutionInterceptor.invoke(RepositoryFactorySupport.java:549)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
	at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.doInvoke(QueryExecutorMethodInterceptor.java:155)
	at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.invoke(QueryExecutorMethodInterceptor.java:130)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
	at org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:80)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
	at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:367)
	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:118)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
	at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:139)
	... 46 common frames omitted
Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "CONTACT" not found; SQL statement:
select count(*) as col_0_0_ from contact contact0_ [42102-200]

	at org.h2.message.DbException.getJdbcSQLException(DbException.java:453)
	at org.h2.message.DbException.getJdbcSQLException(DbException.java:429)
	at org.h2.message.DbException.get(DbException.java:205)
	at org.h2.message.DbException.get(DbException.java:181)
	at org.h2.command.Parser.readTableOrView(Parser.java:7628)
	at org.h2.command.Parser.readTableFilter(Parser.java:1970)
	at org.h2.command.Parser.parseSelectFromPart(Parser.java:2827)
	at org.h2.command.Parser.parseSelect(Parser.java:2959)
	at org.h2.command.Parser.parseQuerySub(Parser.java:2817)
	at org.h2.command.Parser.parseSelectUnion(Parser.java:2649)
	at org.h2.command.Parser.parseQuery(Parser.java:2620)
	at org.h2.command.Parser.parsePrepared(Parser.java:868)
	at org.h2.command.Parser.parse(Parser.java:843)
	at org.h2.command.Parser.parse(Parser.java:815)
	at org.h2.command.Parser.prepareCommand(Parser.java:738)
	at org.h2.engine.Session.prepareLocal(Session.java:657)
	at org.h2.engine.Session.prepareCommand(Session.java:595)
	at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1235)
	at org.h2.jdbc.JdbcPreparedStatement.<init>(JdbcPreparedStatement.java:76)
	at org.h2.jdbc.JdbcConnection.prepareStatement(JdbcConnection.java:352)
	at com.zaxxer.hikari.pool.ProxyConnection.prepareStatement(ProxyConnection.java:337)
	at com.zaxxer.hikari.pool.HikariProxyConnection.prepareStatement(HikariProxyConnection.java)
	at org.hibernate.engine.jdbc.internal.StatementPreparerImpl$5.doPrepare(StatementPreparerImpl.java:149)
	at org.hibernate.engine.jdbc.internal.StatementPreparerImpl$StatementPreparationTemplate.prepareStatement(StatementPreparerImpl.java:176)
	... 82 common frames omitted

Yes, it has nothing to do with Vaadin. It looks like “check” is reserved word in H2 database. Thus not allowed to be used like this. There are couple of alternatives, you can selected different name for the property like, which seems to work ok

@NotNull
private Boolean checked = false;

Or use @Column to define different actual column name for the property in the database to avoid conflict

@NotNull
@Column(name = "checked")
private Boolean check = false;

Indeed! Just giving this another name like “foobar” or whatever made the bug disappear. Thanks for pointing this out!