2010-09-05 3 views
0

У меня есть bean/being bean bean, и я ввожу туда (с @EJB) сессионным bean-компонентом. Теперь в конструкторе я хочу использовать его для инициализации свойства в бэкбоне со значением из базы данных. Но введенный сеансовый бит равен нулю. Каковы другие способы инициализации? Насколько я знаю, я не могу использовать @PostConstruct, потому что извлечение данных из базы данных может привести к исключению, а @PostConstruct запрещает это.Проблема инициализации свойства bean bean в конструкторе

Заранее спасибо

ответ

1

Вы можете Rethrow его как незарегистрированный исключение в @PostConstruct.

Semi-псевдо:

@PostConstruct 
public void init() { 
    try { 
     doSomething(); 
    } catch (CheckedException e) { 
     throw new UncheckedException(e); 
    } 
} 
+0

ли это 'стандартный' способ инициализации? :) – l245c4l

+0

@ l245c4l: Если конструктор недостаточно («слишком рано») из-за управляемых зависимостей, тогда да. @Pascal: Будет. Здесь есть аннотация. – BalusC

+0

Еще раз спасибо, поэтому я должен поймать (Exception e) и бросить RuntimeExcpetion (e)? Например, – l245c4l