Domyślnie Spring uses jpa.SpringNamingStrategy do generowania nazw tabel.
ImprovedNamingStrategy przekonwertuje CamelCase do SNAKE_CASE gdzie jako EJB3NamingStrategy po prostu używa niezmienionej nazwy tabeli.
Możesz spróbować zmienić naming_strategy do:
spring.jpa.hibernate.naming_strategy=org.hibernate.cfg.EJB3NamingStrategy
lub @Column name atrybut powinien być pisany małymi literami @Column(name = "firstname")
Dla Hibernate 5 to powinno działać (nie jestem do końca pewien, czy potrzebujesz również powyższego, ale spróbuj z obydwoma):
spring.jpa.hibernate.naming.implicit-strategy=org.hibernate.boot.model.naming.ImplicitNamingStrategyLegacyJpaImpl
spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl