2015-10-04 80 views
0

我正在嘗試一種簡單的方法在存儲庫中注入我的EntityManager。我會有副作用嗎?CDI + JPA存儲庫

託管Bean:

@Named 
@SessionScoped 
public class Teste implements Serializable { 

@Inject 
Repository repo; 

} 

@RequestScoped 
public class Repository { 
    @PersistenceContext(unitName="Test") 
    EntityManager em; 

} 

是否可以安全使用這種方法?我很擔心這個網絡應用程序的多個請求。

+0

取決於一點。什麼容器和版本? –

+0

'@ PersistenceContext'注入本身是有道理的。是否將具有較長使用期限的請求範圍知識庫注入到會話範圍的Teste類中?我*認爲*這是確定的,因爲CDI將注入一個請求範圍的代理,即使Teste是會話範圍的,它也會爲每個請求提供新的存儲庫。 – wrschneider

+0

@JohnAment,我使用的是Wildfly 8.2,Java 8。 –

回答

1

是否可以安全使用這種方法?我很擔心這個網絡應用的多個請求 。

對我來說這是一個非常有效的方法。所以我有點好奇爲什麼@JohnAment說:

這取決於一點點。什麼容器和版本?

AFAIK它將不考慮容器的工作。如果我錯了,有人能糾正我嗎?

+0

我想只有容器的規範實現是錯誤的,但在這種情況下你可能會遇到更大的問題。 – whitlaaa