Evet, tabi ki yapabilirsiniz. Ayrıca, öğenin, aynı zamanda, aşağıdaki gibi <bean>
etiketlerini (bazı ilkbahar-context.xml'de) kullanarak ya da ek açıklamalarla Spring yönetilen bir fasulye olarak da kaydettirildiğinden emin olmanız gerekir.
Ek açıklamaları kullanarak varlıklarınızı @Component
(veya DAO'lar için otomatik istisna çevirisini sağlayan ve JPA ile etkileşime girmeyebilecek şekilde daha özel bir stereotype @Repository
) işaretleyebilirsiniz. Eğer varlıklar için size kişiler fasulye gibi yakalandı ve onların bağımlılıkları otomatik kablolu olsun, böylece Bahar tarafından taranan verdikleri paketi (veya bazı atası paketi) yapılandırmanız gerekir Bunu yaptıktan sonra
@Entity
@Component
public class MyJAPEntity {
@Autowired
@Transient
ServletContext servletContext;
...
}
. ServletContext
statik Yapımı (nihayet çalıştı ne ve neden)
yana, JPA yani Bahar fasulye yönetilen kullanmayan ayrı bir varlık örneği yaratıyor (@Autowired kaldırmak), bu ortak olmak bağlamda için gerekli oluyor.
Bu Varlık örneği edildikten sonra init()
ve iç ServletContext
başvurarak ateşler, bu statik mülkiyet enjeksiyon zorlar.
biz böyle saçmalıklara istihdam zorunda neden yanıtlamak için aşağıdaki benim son yorumunu aktaran varlıklarını somutlaştırmak için. JPA'yı, varlıkların yaşam döngüsünü başlatan ve yöneten (ilkbahardan tamamen ayrı) ayrı bir ORM konteyneri olarak düşünün ve DI'yi yalnızca varlık ilişkilerine dayalı olarak yapın.
Ben de bir EntityListener içine EntityManager enjekte ederken sorunun aynı tür bakan ve bir çözüm bulundu ve başka yazı http://stackoverflow.com/questions/22171221/how-to-inject-entitymanager-in üzerinde yanıt verdi edildi -entitylisteners/42222592 # 42222592 –