Dopo aver sperimentato un po' di più ho trovato la risposta.
La parola "UNSIGNED" dovrebbe venire dopo "TINYINT" invece che prima. Il campo deve essere definito come segue:
@Size(max = 3)
@Column(name = "WorkingHours", columnDefinition="TINYINT(3) UNSIGNED default '40'")
private Integer workingHours;
Non sono sicuro del motivo per cui questo è, l'ho scoperto solo attraverso tentativi ed errori. Forse qualcun altro può fornire un riferimento per spiegarlo.