Sé que esta pregunta es (¡realmente!) antigua, pero:
TINYINT representa valores de 8 bits. Está asignado a byte/byte. Tiene un valor mínimo de -128 y un valor máximo de 127 (ambos inclusive) en ambos casos.
SMALLINT representa valores de 16 bits. Está asignado a corto/Corto.
INTEGER representa valores de 32 bits. Está asignado a int/Integer.
BIGINT representa valores de 64 bits. Está asignado a largo/Largo.
Entonces, no puedes mapear un tinyint usando un Integer; debe usar un Byte.
https://docs.oracle.com/javase/tutorial/java /tuercas y tornillos/tipos de datos.html http://dev.mysql.com/doc/refman /5.7/es/tipos-entero.html