我們在我們的應用程序中使用CDI(JSR 299)(JSF2/Seam3.0 /休眠3.5.6/3.1.1的GlassFish)CDI注入Hibernate的實體
雖然我們無法注入資源(助手的POJO )在我們的託管bean中使用@Inject,我們不能在我們的Hibernate Entity類中做同樣的事情。
我們有一個基本實體類(@MappedSuperclass),所有實體對象派生自。兩類CDI注射均失敗。
@MappedSuperclass
public class BaseBusinessObject implements Serializable
{
@Inject
private TestClass testClass; //FAILS
}
@Entity
@NamedQueries({ @NamedQuery(name = "Account.findAll", query = "SELECT b FROM Account b") })
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class Account extends BaseBusinessObject
{
@Inject
private TestClass testClass; //FAILS
}
它似乎可能是CDI的限制。任何人都可以確認CDI是否適用於Hibernate實體。
任何輸入將不勝感激。
感謝&問候
嗨塞巴斯蒂安時,你應該非常小心,謝謝您的答覆。我們使用多個Hibernate實體,但它們都從基礎實體類派生(基本屬性,如創建日期時間)。我們試圖在這個基類中注入日期時間實用工具類來獲取實體創建時間,並且此注入失敗。 – gkari 2011-12-15 14:43:21