Как насчет объектного литерала.
icons = {
0: icon0,
1: icon1,
2: icon2
}
icon = icons[area];
Я так не думаю. Но вам не обязательно делать это за один раз, вы можете довольно легко смешивать аннотацию и конфигурацию .xml.
Кроме того, почему вы чувствуете необходимость конвертировать в аннотации? Я бы не сказал, что они намного лучше, чем конфигурация xml, чтобы оправдать затраты времени на их преобразование.
Вы смотрели инструменты гибернации, в частности компонент hbm2java ?