Publica tu how-to

Dinos como hacer lo que sabes hacer, mándanos un email a wdonet@gmail.com y lo publicamos (dos días máximo) o si te interesa unirte al equipo de redactores, también háznoslo saber por correo.

Mostrando entradas con la etiqueta pojo. Mostrar todas las entradas
Mostrando entradas con la etiqueta pojo. Mostrar todas las entradas

Hibernate: relaciones con annotations

Ejemplo de anotaciones uni y bidireccional en many-to-one

Tomando en cuenta q hay dos clases (tablas en BD) user y correo de la siguiente forma:

Lo basico:




Tabla USER
Tabla CORREO
ID (id)
NAME (name)
PWD (password)
ID (id)
MAIL (mail)
USER_ID [relacion]

La clase User tendra propiedades id, name, password
La clase Correo tendra propiedades id, mail

Las anotaciones, ademas de los campos arriba mencionados son como sigue:

Bidireccional User --- Correo (User y Correo saben de la existencia del otro)

class Correo {
@ManyToOne(fetch..)
@JoinCloumn(name="USER_ID")
privateUser usuario;
}
class User {
@OneToMany (cascade..,fetch..,mappedBy="usuario")
Set correos;
}

Unidireccional User --> Correo (User sabe q correos tiene pero Correo no sabe nada de User)

class Correo {
/**** no existe ningun atributo 'usuario' ****/
}
class User {
@OneToMany (cascade..,fetch..)
@JoinColumn(name="USER_ID")
Set correos;
}

Unidireccional User <-- Correo (Correo sabe a q user corresponde pero User no sabe nade de Correo) class Correo {
@ManyToOne(fetch..)
@JoinCloumn(name="USER_ID")
privateUser usuario;
}
class User {
**** no existe ningun atributo 'correos' ****
}

NOTA:

mappedBy hace referencia al nombre de atributo del otro lado
* @JoinColumn.name hace referencia al nombre de la tabla en la BD (no el atributo)
* los nombres de las tablas y sus campos aqui se indican en mayusculas, pero las clases Java y sus elementos siguen el mismo esquema q cualquier clase Java.