Вы пытались добавить аннотацию @Lob
в поле фотографии?
@Column(nullable=false)
@Lob
private byte[] photo;
И чтобы ответить на вашу вторую часть, элегантно ли обрабатывать изображения таким образом: Зависит от того, как часто вы их обслуживаете. Доступ к базе данных обычно дороже, чем простой доступ к файлам.