在Java EE 7項目中我需要一個自定義的ConnectionProvider,它調用具有記錄UserId的DB-Function,並設置爲DB會話變量。注入自定義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