¡Finalmente encontré el error!
El mensaje de error que me devolvía Hibernate era "valor incorrecto para tipo int:admin", pero eso no el problema. Este mensaje fue completamente loco en relación con el tema. El verdadero problema era que en la base de datos mi clave primaria (pk_role) es de tipo VARCHAR, pero en mi entidad la pongo como de tipo INTEGER.
Después de que Vlad intentara ayudarme a suponer la versión del controlador jdbc, puse la configuración exactamente igual a la de otro proyecto que tenía funcionando bastante bien y el error era el mismo, así que supe que el error estaba en mi propio código, seguro.