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
}
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
}
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.
No hay comentarios:
Publicar un comentario
Que opinas sobre esta publicación?