Po dalším experimentování jsem našel odpověď.
Slovo "UNSIGNED" by mělo následovat po "TINYINT" místo před tím. Pole by mělo být definováno takto:
@Size(max = 3)
@Column(name = "WorkingHours", columnDefinition="TINYINT(3) UNSIGNED default '40'")
private Integer workingHours;
Nejsem si jistý, proč tomu tak je, zjistil jsem to pouze metodou pokus-omyl. Možná někdo jiný může poskytnout odkaz, proč tomu tak je.