<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>.:: Seam City ::. &#187; jpa</title>
	<atom:link href="http://seamcity.madeinxpain.com/archives/tag/jpa/feed" rel="self" type="application/rss+xml" />
	<link>http://seamcity.madeinxpain.com</link>
	<description>Sobre programación en general, y Seam en particular</description>
	<lastBuildDate>Thu, 22 Jan 2009 15:35:41 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Como inyectar un EntityManager en Seam</title>
		<link>http://seamcity.madeinxpain.com/archives/como-inyectar-un-entitymanager-en-seam</link>
		<comments>http://seamcity.madeinxpain.com/archives/como-inyectar-un-entitymanager-en-seam#comments</comments>
		<pubDate>Wed, 04 Jun 2008 07:21:01 +0000</pubDate>
		<dc:creator>Tes</dc:creator>
				<category><![CDATA[seam]]></category>
		<category><![CDATA[jpa]]></category>

		<guid isPermaLink="false">http://seamcity.madeinxpain.com/?p=50</guid>
		<description><![CDATA[Con la llegada de EJB 3 y JPA nace la figura del EntityManager para simplificar la persistencia de objetos.
Y gracias a las anotaciones, el EntityManager puede ser inyectado por el contenedor de EJBs.
Vamos a ver diferentes formas de obtener un EntityManager en Seam a través de anotaciones.




@PersistenceContext
EntityManager entityManager;



El EntityManager es inyectado directamente por el EJB [...]]]></description>
			<content:encoded><![CDATA[<p>Con la llegada de EJB 3 y JPA nace la figura del EntityManager para simplificar la persistencia de objetos.<br />
Y gracias a las anotaciones, el EntityManager puede ser inyectado por el contenedor de EJBs.<br />
Vamos a ver diferentes formas de obtener un EntityManager en Seam a través de anotaciones.</p>
<ul>
<li>
<div class="syntax_hilite">
<div id="java-5">
<div class="java">@PersistenceContext<br />
EntityManager entityManager;</div>
</div>
</div>
<p>
El EntityManager es inyectado directamente por el EJB container. El ciclo de vida del EntityManager inyectado de esta forma terminará cuando la transacción sea completada.<br />
Tras el cierre de la transacción, las entidades son desacopladas del contexto de persistencia, lo que puede dar lugar a una LazyLoadException.</li>
<li>
<div class="syntax_hilite">
<div id="java-6">
<div class="java">@PersistenceContext<span style="color: #66cc66;">&#40;</span>type=PersistenceContextType.<span style="color: #006600;">EXTENDED</span><span style="color: #66cc66;">&#41;</span><br />
EntityManager entityManager;</div>
</div>
</div>
<p>
El EntityManager es inyectado directamente por el EJB container, y estará disponible aún después de que la transacción haya sido completa.<br />
Las entidades pueden seguir asociadas al contexto de persistencia durante varias interacciones.</li>
<li>
<div class="syntax_hilite">
<div id="java-7">
<div class="java">@In<br />
EntityManager entityManager;</div>
</div>
</div>
<p>
De esta forma, el EntityManager es inyectado por Seam y asociado al contexto de conversación, con las mismmas características que un EntityManager de tipo extendido.</li>
<li>
<div class="syntax_hilite">
<div id="java-8">
<div class="java">@PersistenceUnit<br />
EntityManagerFactory;</p>
<p><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #993333;">void</span> getNewEmInstance<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span><br />
<span style="color: #000000; font-weight: bold;">return</span> emf.<span style="color: #006600;">createEntityManager</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;<br />
<span style="color: #66cc66;">&#125;</span></div>
</div>
</div>
<p>
Esta anotacion inyecta un EntityManagerFactory, que permite crear objetos EntityManager mediante el método EntityManagerFactory.createEntityManager();</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://seamcity.madeinxpain.com/archives/como-inyectar-un-entitymanager-en-seam/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Obtener un EntityManager sin inyección de dependencias</title>
		<link>http://seamcity.madeinxpain.com/archives/obtener-un-entitymanager-sin-inyeccion-de-dependencias</link>
		<comments>http://seamcity.madeinxpain.com/archives/obtener-un-entitymanager-sin-inyeccion-de-dependencias#comments</comments>
		<pubDate>Wed, 28 May 2008 07:31:42 +0000</pubDate>
		<dc:creator>Tes</dc:creator>
				<category><![CDATA[seam]]></category>
		<category><![CDATA[jpa]]></category>

		<guid isPermaLink="false">http://seamcity.madeinxpain.com/?p=47</guid>
		<description><![CDATA[Para obtener un EntityManager en un componente Seam, la vía más fácil es usar la anotación @In y disfrutar de las ventajas del mecanismo de inyección de dependencias de Seam.


@In
EntityManager entityManager;



Pero estas ventajas solo están disponibles dentro de los componentes, es decir, en aquellas clases anotadas con @Name.
Si en una clase normal quisiésemos obtener el [...]]]></description>
			<content:encoded><![CDATA[<p>Para obtener un EntityManager en un componente Seam, la vía más fácil es usar la anotación <em>@In</em> y disfrutar de las ventajas del mecanismo de inyección de dependencias de Seam.</p>
<div class="syntax_hilite">
<div id="java-11">
<div class="java">@In<br />
EntityManager entityManager;</div>
</div>
</div>
<p></p>
<p>Pero estas ventajas solo están disponibles dentro de los componentes, es decir, en aquellas clases anotadas con <em>@Name</em>.<br />
Si en una clase <em>normal</em> quisiésemos obtener el EntityManager, deberíamos hacerlo manualmente.</p>
<div class="syntax_hilite">
<div id="java-12">
<div class="java"><span style="color: #808080; font-style: italic;">// PERSISTENCE_UNIT_NAME es el nombre del persistence-unit definido en el archivo persistence.xml</span><br />
EntityManagerFactory emf = Persistence.<span style="color: #006600;">createEntityManagerFactory</span><span style="color: #66cc66;">&#40;</span>PERSISTENCE_UNIT_NAME<span style="color: #66cc66;">&#41;</span>;<br />
EntityManager em = emf.<span style="color: #006600;">createEntityManager</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;</div>
</div>
</div>
<p></p>
]]></content:encoded>
			<wfw:commentRss>http://seamcity.madeinxpain.com/archives/obtener-un-entitymanager-sin-inyeccion-de-dependencias/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

