Nachdem ich noch etwas herumexperimentiert hatte, fand ich die Antwort.
Das Wort "UNSIGNED" sollte nach "TINYINT" kommen statt davor. Das Feld sollte wie folgt definiert werden:
@Size(max = 3)
@Column(name = "WorkingHours", columnDefinition="TINYINT(3) UNSIGNED default '40'")
private Integer workingHours;
Ich bin mir nicht sicher, warum das so ist, ich habe es nur durch Versuch und Irrtum herausgefunden. Vielleicht kann jemand anderes einen Hinweis geben, warum das so ist.