в проекте Java EE 7 Мне нужен пользовательский ConnectionProvider, который вызывает функцию DB с зарегистрированным UserId и устанавливает переменные DB-Session.Injection in custom ConnectionProvider с CDI и Hibernate4
Моя проблема: я не могу ввести свой зарегистрированный пользователь в MyConnectionProvider, но во всех других компонентах - без проблем.
Это мой ConnectionProvider:
@SessionScoped
@Named
public class MyConnectionProvider implements ConnectionProvider, Configurable, Serializable {
@Inject
private Logger log;
@Inject @LoggedIn
private User currentUser = null;
Вот класс Войти где инициализируется CurrentUser:
@SessionScoped
@Named
public class Login implements Serializable
{
@Inject
private Credentials credentials;
@PersistenceContext
private EntityManager userDatabase;
private User currentUser;
//.....................................
@Produces
@LoggedIn
@Named
@SessionScoped
public User getCurrentUser()
{
return currentUser;
}
и интерфейс LoggedIn:
@Retention(RetentionPolicy.RUNTIME)
@Target({TYPE, PARAMETER, METHOD, FIELD})
@Qualifier
public @interface LoggedIn {}
Может быть кто-нибудь имеет тот же Проблемы ?
Основываясь на ошибке здесь, я предполагаю, что вы пытаетесь выполнить работу в этой БД до загрузки контейнера. Не буду работать в этом сценарии, так как у вас, вероятно, еще нет пользователя LoggedIn ... Кстати, я пропустил этот комментарий, так как вы не ответили на мой ответ. –
Да, вы правы, это была моя ошибка. Я решил свою проблему, это был особый способ, как мы обращаемся к базе данных. Ваше решение было абсолютно правильным. Большое спасибо. – jin99