With Spring boot and YAML, the datasource can be configured like following
spring:
datasource:
url: jdbc:hsqldb:file:data/tmpdb;shutdown=true;hsqldb.default_table_type=cached;hsqldb.log_data=true;hsqldb.log_size=2;hsqldb.defrag=2;hsqldb.cache_rows=2048;hsqldb.result_max_memory_rows=3000;runtime.gc_interval=4000
With log enabled, once the log file reaches the specified size 2M, a CHECKPOINT action will be performed automatically and save data. In turn then, the hsqldb.defrag setting will be examined to see if a defrag should be run as well. When hsqldb.defrag=2, the defrag will be run only when 2% of the data file is not used after it's triggerd by the CHECKPOINT action.
hsqldb.default_table_type=cached : Make sure tables are created with CREATE CACHED TABLE.