<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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:georss="http://www.georss.org/georss"
	xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
	
	>
<channel>
	<title>
	Comentarios en: Embeber llave primaria con @EmbeddedId	</title>
	<atom:link href="https://www.oscarblancarteblog.com/2016/11/08/embeber-llave-primaria-embeddedid/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.oscarblancarteblog.com/2016/11/08/embeber-llave-primaria-embeddedid/</link>
	<description>Software Architect &#38; FullStack developer</description>
	<lastBuildDate>Thu, 13 Oct 2022 20:25:58 +0000</lastBuildDate>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=5.5.11</generator>
	<item>
		<title>
		Por: lester		</title>
		<link>https://www.oscarblancarteblog.com/2016/11/08/embeber-llave-primaria-embeddedid/#comment-32706</link>

		<dc:creator><![CDATA[lester]]></dc:creator>
		<pubDate>Thu, 13 Oct 2022 20:25:58 +0000</pubDate>
		<guid isPermaLink="false">http://www.oscarblancarteblog.com/?p=1072#comment-32706</guid>

					<description><![CDATA[Cual sería la diferencia, sí en lugar de crear una nueva clase TelephonePK  con @Embeddable.... solo creamos 
las relaciones desde la clase Telephone @ManyToOne y desde employe @OneToMany___ si el resultado es el mismo??]]></description>
			<content:encoded><![CDATA[<p>Cual sería la diferencia, sí en lugar de crear una nueva clase TelephonePK  con @Embeddable&#8230;. solo creamos<br />
las relaciones desde la clase Telephone @ManyToOne y desde employe @OneToMany___ si el resultado es el mismo??</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Por: oblancarte		</title>
		<link>https://www.oscarblancarteblog.com/2016/11/08/embeber-llave-primaria-embeddedid/#comment-6901</link>

		<dc:creator><![CDATA[oblancarte]]></dc:creator>
		<pubDate>Mon, 08 Jun 2020 14:06:35 +0000</pubDate>
		<guid isPermaLink="false">http://www.oscarblancarteblog.com/?p=1072#comment-6901</guid>

					<description><![CDATA[En respuesta a &lt;a href=&quot;https://www.oscarblancarteblog.com/2016/11/08/embeber-llave-primaria-embeddedid/#comment-6894&quot;&gt;Ricardo Arratia&lt;/a&gt;.

Hola Ricardo, no entendí muy bien la pregunta, pero entiendo que lo que quieres hacer es sobre escribir el nombre de las columnas que definen la clase Embeddable, en tal caso, deberías de utilizar la anotación &lt;code&gt;@AttributeOverrides&lt;/code&gt;, la cual permite sobreescribir las propiedades previamente definidas.
Saludos.]]></description>
			<content:encoded><![CDATA[<p>En respuesta a <a href="https://www.oscarblancarteblog.com/2016/11/08/embeber-llave-primaria-embeddedid/#comment-6894">Ricardo Arratia</a>.</p>
<p>Hola Ricardo, no entendí muy bien la pregunta, pero entiendo que lo que quieres hacer es sobre escribir el nombre de las columnas que definen la clase Embeddable, en tal caso, deberías de utilizar la anotación <code>@AttributeOverrides</code>, la cual permite sobreescribir las propiedades previamente definidas.<br />
Saludos.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Por: Ricardo Arratia		</title>
		<link>https://www.oscarblancarteblog.com/2016/11/08/embeber-llave-primaria-embeddedid/#comment-6894</link>

		<dc:creator><![CDATA[Ricardo Arratia]]></dc:creator>
		<pubDate>Sun, 07 Jun 2020 00:06:51 +0000</pubDate>
		<guid isPermaLink="false">http://www.oscarblancarteblog.com/?p=1072#comment-6894</guid>

					<description><![CDATA[Una consulta, estimado, en la clase @Embeddable ¿puedo definir los nombres de columnas diferentes a la tabla como lo mapeo comunmente? 
me refiero: @Column(name = &quot;nombre_id&quot;)

¿ O me veo obligado a coincidir con los mismos nombres de capos de la tabla en la BD?]]></description>
			<content:encoded><![CDATA[<p>Una consulta, estimado, en la clase @Embeddable ¿puedo definir los nombres de columnas diferentes a la tabla como lo mapeo comunmente?<br />
me refiero: @Column(name = &#8220;nombre_id&#8221;)</p>
<p>¿ O me veo obligado a coincidir con los mismos nombres de capos de la tabla en la BD?</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Por: oblancarte		</title>
		<link>https://www.oscarblancarteblog.com/2016/11/08/embeber-llave-primaria-embeddedid/#comment-2509</link>

		<dc:creator><![CDATA[oblancarte]]></dc:creator>
		<pubDate>Fri, 05 Jul 2019 17:11:15 +0000</pubDate>
		<guid isPermaLink="false">http://www.oscarblancarteblog.com/?p=1072#comment-2509</guid>

					<description><![CDATA[En respuesta a &lt;a href=&quot;https://www.oscarblancarteblog.com/2016/11/08/embeber-llave-primaria-embeddedid/#comment-2459&quot;&gt;JUAN&lt;/a&gt;.

Hola Juan, no estoy seguro de haber entendido tu pregunta, pero creo que tienes el siguiente escenario, tienes una Entidad padre con una llave compuesta, y luego tiene 3 clases hijas que quieres que tengan una referencia al padre, entonces el problema que tienes es que, no sabemos como anotar la relación en las clases hijas para hacer referencia al padre. si mi premisa es correcta, entonces tendrás que hacer los siguiente, deberás crear una propiedad del tipo Padre y anotarla con @JoinColumns, observa que termina con S, esa anotación, te permitirá meter un array de @JoinColun (sin S), y deberás meter un @JoinColum por cada columna que quieres mapear, por ejemplo:
&lt;code&gt;&lt;pre&gt;@JoinColumns({
        @JoinColumn(
            name = &quot;company_id&quot;,
            referencedColumnName = &quot;company_id&quot;),
        @JoinColumn(
            name = &quot;employee_number&quot;,
            referencedColumnName = &quot;employee_number&quot;)
    })&lt;/pre&gt;&lt;/code&gt;]]></description>
			<content:encoded><![CDATA[<p>En respuesta a <a href="https://www.oscarblancarteblog.com/2016/11/08/embeber-llave-primaria-embeddedid/#comment-2459">JUAN</a>.</p>
<p>Hola Juan, no estoy seguro de haber entendido tu pregunta, pero creo que tienes el siguiente escenario, tienes una Entidad padre con una llave compuesta, y luego tiene 3 clases hijas que quieres que tengan una referencia al padre, entonces el problema que tienes es que, no sabemos como anotar la relación en las clases hijas para hacer referencia al padre. si mi premisa es correcta, entonces tendrás que hacer los siguiente, deberás crear una propiedad del tipo Padre y anotarla con @JoinColumns, observa que termina con S, esa anotación, te permitirá meter un array de @JoinColun (sin S), y deberás meter un @JoinColum por cada columna que quieres mapear, por ejemplo:<br />
<code></p>
<pre>@JoinColumns({
        @JoinColumn(
            name = "company_id",
            referencedColumnName = "company_id"),
        @JoinColumn(
            name = "employee_number",
            referencedColumnName = "employee_number")
    })</pre>
<p></code></p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Por: JUAN		</title>
		<link>https://www.oscarblancarteblog.com/2016/11/08/embeber-llave-primaria-embeddedid/#comment-2459</link>

		<dc:creator><![CDATA[JUAN]]></dc:creator>
		<pubDate>Tue, 02 Jul 2019 00:18:48 +0000</pubDate>
		<guid isPermaLink="false">http://www.oscarblancarteblog.com/?p=1072#comment-2459</guid>

					<description><![CDATA[Hola Óscar, estoy en un proyecto que tengo 4 tablas que utiliza la mismas pk  que la tabla padre, he creado una clase para meter las pk compuestas y desde el la clase padre llamo a esa clase para crear una sola pk, pero para utilizar  esas pk como seria las anotaciones en las clases hijas para poder utilizar esas pk que serían de las 3 clases hijas restantes. Mi duda es llamo desde las clases hijas a la clase padre o a la clase que tiene las pk compuestas en cada variable que es pk en la clase hijas. Debo poner en la clase hijo  mencion a la pk del padre ej: 
@Column(name=	&quot;ncampo&quot;) 
private ClasepadrePk  id.

Sería correcto, si no es así díme como debería ser. Gracias un abrazo.]]></description>
			<content:encoded><![CDATA[<p>Hola Óscar, estoy en un proyecto que tengo 4 tablas que utiliza la mismas pk  que la tabla padre, he creado una clase para meter las pk compuestas y desde el la clase padre llamo a esa clase para crear una sola pk, pero para utilizar  esas pk como seria las anotaciones en las clases hijas para poder utilizar esas pk que serían de las 3 clases hijas restantes. Mi duda es llamo desde las clases hijas a la clase padre o a la clase que tiene las pk compuestas en cada variable que es pk en la clase hijas. Debo poner en la clase hijo  mencion a la pk del padre ej:<br />
@Column(name=	&#8220;ncampo&#8221;)<br />
private ClasepadrePk  id.</p>
<p>Sería correcto, si no es así díme como debería ser. Gracias un abrazo.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Por: Oscar Blancarte		</title>
		<link>https://www.oscarblancarteblog.com/2016/11/08/embeber-llave-primaria-embeddedid/#comment-242</link>

		<dc:creator><![CDATA[Oscar Blancarte]]></dc:creator>
		<pubDate>Thu, 21 Jun 2018 00:25:16 +0000</pubDate>
		<guid isPermaLink="false">http://www.oscarblancarteblog.com/?p=1072#comment-242</guid>

					<description><![CDATA[En respuesta a &lt;a href=&quot;https://www.oscarblancarteblog.com/2016/11/08/embeber-llave-primaria-embeddedid/#comment-241&quot;&gt;MArio Vazquez&lt;/a&gt;.

Hola Mario, para empezar, tu propiedad pantallas no está muy clara, por que no tiene el tipo genérico, asumo que guardas otras entidades dentro. 

Lo que utilizaría para crear una llave compuesta de dos o más campos sería crear una clase con las 3 propiedades y anotarla con @Embeddable, luego, en la entidad crear una propiedad de la clase anterior y anotarla con @EmbeddedId, esto le dirá a JPA que los campos de la primera clase será la llave primaria.
espero que esto resuelva tu duda.]]></description>
			<content:encoded><![CDATA[<p>En respuesta a <a href="https://www.oscarblancarteblog.com/2016/11/08/embeber-llave-primaria-embeddedid/#comment-241">MArio Vazquez</a>.</p>
<p>Hola Mario, para empezar, tu propiedad pantallas no está muy clara, por que no tiene el tipo genérico, asumo que guardas otras entidades dentro. </p>
<p>Lo que utilizaría para crear una llave compuesta de dos o más campos sería crear una clase con las 3 propiedades y anotarla con @Embeddable, luego, en la entidad crear una propiedad de la clase anterior y anotarla con @EmbeddedId, esto le dirá a JPA que los campos de la primera clase será la llave primaria.<br />
espero que esto resuelva tu duda.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Por: MArio Vazquez		</title>
		<link>https://www.oscarblancarteblog.com/2016/11/08/embeber-llave-primaria-embeddedid/#comment-241</link>

		<dc:creator><![CDATA[MArio Vazquez]]></dc:creator>
		<pubDate>Thu, 21 Jun 2018 00:12:41 +0000</pubDate>
		<guid isPermaLink="false">http://www.oscarblancarteblog.com/?p=1072#comment-241</guid>

					<description><![CDATA[Saludos:  en mi caso he estado manejando entidades con dos llaves de una manera muy sencilla mas o menos de la siguiente manera:
En mi clase Usuario ademas de los campos propios de la clase, tengo esta anotacion y me crea una tabla UsuarioPantalla con 2 campos idUsuario e idPantalla.  La cual me mantiene una relacion entre la clase Usuario y la clase Pantalla.
&lt;code&gt;@Entity
@Table(name = &quot;Usuario&quot;)
public class Usuario extends EntidadBase implements Serializable {
	private static final long serialVersionUID = -6695788587077076257L;
	@Column(name = &quot;clave&quot;, unique = true, nullable = false)
	private String clave;

	@Column(name = &quot;nombre&quot;, nullable = false)
	private String nombre;

	@ManyToMany(fetch = FetchType.LAZY)
	@JoinTable(name = &quot;UsuarioPantalla&quot;
	, joinColumns = { @JoinColumn(name = &quot;idUsuario&quot;, nullable = false, updatable = false) }
	, inverseJoinColumns = { @JoinColumn(name = &quot;idPantalla&quot;, nullable = false, updatable = false) })
	private Set pantallas = new HashSet();
 
	public Set getPantallas() {
		return pantallas;
	}
	public void setPantallas(Set pantallas) {
		this.pantallas = pantallas;
	}&lt;/code&gt;
.....
en JS lo implemento asi mas o menos 
var Ousuariodb = db.get(Usuario, idUsuario);
var Opantalladb = db.get(Pantalla, idPantalla);
Ousuariodb.getPantallas().add(Opantalladb);

El metodos getPantallas() tambien me trea una lista con todos las pantallas de un usuario, ahi todo bien.

Hasta el momento no he tenido problemas al manejar relacionadores con llaves dobles El PROBLEMA viene cuando quiero crear un relacionador con tres llaves supongamos que quiciera un relacionador entre las clases Usuario, Pantalla y Empresa. ¿Cual seria la manera mas sencilla de implemetar esto?
Veo tu codigo tan diferente que no se si sea porque el mio este implementado en eclipse o de plano sean cosas totalmente diferentes.
Muchas gracias por su tiempo.]]></description>
			<content:encoded><![CDATA[<p>Saludos:  en mi caso he estado manejando entidades con dos llaves de una manera muy sencilla mas o menos de la siguiente manera:<br />
En mi clase Usuario ademas de los campos propios de la clase, tengo esta anotacion y me crea una tabla UsuarioPantalla con 2 campos idUsuario e idPantalla.  La cual me mantiene una relacion entre la clase Usuario y la clase Pantalla.<br />
<code>@Entity<br />
@Table(name = "Usuario")<br />
public class Usuario extends EntidadBase implements Serializable {<br />
	private static final long serialVersionUID = -6695788587077076257L;<br />
	@Column(name = "clave", unique = true, nullable = false)<br />
	private String clave;</p>
<p>	@Column(name = "nombre", nullable = false)<br />
	private String nombre;</p>
<p>	@ManyToMany(fetch = FetchType.LAZY)<br />
	@JoinTable(name = "UsuarioPantalla"<br />
	, joinColumns = { @JoinColumn(name = "idUsuario", nullable = false, updatable = false) }<br />
	, inverseJoinColumns = { @JoinColumn(name = "idPantalla", nullable = false, updatable = false) })<br />
	private Set pantallas = new HashSet();</p>
<p>	public Set getPantallas() {<br />
		return pantallas;<br />
	}<br />
	public void setPantallas(Set pantallas) {<br />
		this.pantallas = pantallas;<br />
	}</code><br />
&#8230;..<br />
en JS lo implemento asi mas o menos<br />
var Ousuariodb = db.get(Usuario, idUsuario);<br />
var Opantalladb = db.get(Pantalla, idPantalla);<br />
Ousuariodb.getPantallas().add(Opantalladb);</p>
<p>El metodos getPantallas() tambien me trea una lista con todos las pantallas de un usuario, ahi todo bien.</p>
<p>Hasta el momento no he tenido problemas al manejar relacionadores con llaves dobles El PROBLEMA viene cuando quiero crear un relacionador con tres llaves supongamos que quiciera un relacionador entre las clases Usuario, Pantalla y Empresa. ¿Cual seria la manera mas sencilla de implemetar esto?<br />
Veo tu codigo tan diferente que no se si sea porque el mio este implementado en eclipse o de plano sean cosas totalmente diferentes.<br />
Muchas gracias por su tiempo.</p>
]]></content:encoded>
		
			</item>
	</channel>
</rss>
