We are using CDI(JSR 299) in our application (JSF2/Seam3.0/Hibernate 3.5.6/GlassFish 3.1.1)
While we are unable to inject resources(Helper POJOs) in our managed bean
It's a bad practice to systematically use JPA entity as CDI bean (but it's possible if you want to). That's mainly because of the 'C' of CDI : Context.
All CDI implementations use proxy mechanism to handle injection of a bean of a given scope in a bean of a different scope. And as most JPA implementation use also proxy to handle some mechanism (Lazy Loading for instance) you will finished with a bunch of proxies in your class with different life cycles : a mess !
Weld documentation as even a waning about this issue : Chapter 5. Scopes and Contexts
However it could be useful in some case to expose an entity as CDI bean, but you'd prefer to use a producer to do so :
@Produces
@Named
@RequestScoped
private MyEntity produceMyEntity()
{
return new MyEntity(); //or any JPA lookup you'll need
}
This way is the most convenient but you should be very careful when mixing managed entities and CDI