Hola, la contestación de mi tocayo es muy correcta, no obstante, quisiera hacer un apunte.
Siempre que tratemos de persistir datos binarios en una base de datos hay que tener cuidado, por que se nos puede ir de las manos y ciertas consultas se pueden eternizar cuando la cantidad de datos es muy elevada a la hora de recuperar datos, sobre todo en listados. En muchas ocasiones puede ser de interés guardar esos datos en un one-to-one (obviamente con lazy habilitado) o incluso mejor aún, guardar el fichero físicamente y tener una referencia a su ubicación en la tupla correspondiente.
Aún utilizando byte[] y datos pequeños, luego esa información va sumando y cuando tienes 100 registros no pasa nada, cuando ya nos empezamos a pasar de los 1000 las cosas se pueden ralentizar.
Por muy "clásico" que pueda parecer el acceso a ficheros mediante rutas físicas son accesos mucho más rápidos que obtenerlos desde la base de datos.