Sau khi thử nghiệm thêm, tôi đã tìm ra câu trả lời.
Từ "UNSIGNED" sẽ đến sau "TINYINT" thay vì trước nó. Trường phải được xác định như sau:
@Size(max = 3)
@Column(name = "WorkingHours", columnDefinition="TINYINT(3) UNSIGNED default '40'")
private Integer workingHours;
Tôi không chắc tại sao lại như vậy, tôi chỉ phát hiện ra điều này thông qua thử nghiệm và sai sót. Có thể ai đó khác có thể cung cấp tài liệu tham khảo cho lý do tại sao lại như vậy.