Efter att ha experimenterat lite mer hittade jag svaret.
Ordet "UNSIGNED" bör komma efter "TINYINT" istället för innan det. Fältet ska definieras enligt följande:
@Size(max = 3)
@Column(name = "WorkingHours", columnDefinition="TINYINT(3) UNSIGNED default '40'")
private Integer workingHours;
Jag är inte säker på varför det är så, jag har bara upptäckt detta genom försök och misstag. Kanske någon annan kan ge en referens till varför det är så.