2 votes

Injecter un bean de session dans une entité

Je suis en train d'écrire une application JEE6 en utilisant EJB3.1, CDI et le pattern d'objet de domaine persistant. Dans certains cas, j'ai besoin d'avoir une instance d'un bean de session à l'intérieur d'une entité (jpa2.0). L'injecter en utilisant @Inject ou @EJB ne fonctionne pas. C'est toujours une référence nulle.

La seule solution possible était de faire une recherche via InitialContext. Mais c'est vraiment mauvais. Est-ce que quelqu'un sait comment accéder à un bean de session à partir d'une entité?

J'ai lu sur l'usine de beans de session sans état mais je n'ai pas trouvé d'exemple.

1voto

Bozho Points 273663

Les entités sont créées par vous, et si vous voulez leur injecter des beans, elles doivent être créées par le conteneur.

Techniquement, vous pouvez avoir vos entités gérées par le conteneur CDI, et au lieu de faire new YourEntity, utilisez @Inject @New YourEntity entity. Mais c'est un peu contre-intuitif. Je ne l'ai pas essayé.

Cela fait partie d'une discussion plus large sur le modèle de données anémique par rapport à la conception pilotée par le domaine. C'est-à-dire si vos entités doivent être des porteurs de données sans aucun comportement, ou si elles doivent également avoir de la logique (et cacher leur état)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X