Ver Mensaje Individual
  #2 (permalink)  
Antiguo 23/11/2011, 10:40
Avatar de Ronruby
Ronruby
 
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: relacion de tablas hibernate

Cita:
1.- ¿que me conviene usar los xml que genero con los plug in de hibernate o usar las anotaciones de jpa?
Esta parte es mas una decisión personal que otra cosa. Lo que debes tener en cuenta es que, al usar archivos XML, nunca tendrás que tocar el código fuente de las entidades. Sin embargo, al usar anotaciones, para hacer un cambio tienes que editar la clase de la entidad, pero las anotaciones tienen la ventaja de que si decides usar otro framework que use las especificaciones establecidas en EJB3, para que funcionen tus entidades no cambiaras nada.

Si usaras XML's, al pasarte a otro framework, digamos, iBATIS, debes crear nuevos archivos XML. Con anotaciones la configuracion es MUY minima (solo definir las clases anotadas y los datasources).

Cita:
2.-¿la relacion de tablas como seria en codigo ya sea usando xml o anotaciones de jpa-?, no entiendo esto la vdd de hacer las relaciones entre tablas.
Con archivos XML no recuerdo, ya que no los utilizo tanto. Con anotaciones hay 4 tipos de relaciones que puedes hacer:
@OneToMany = Uno a muchos 1:n
@ManyToMany = Muchos a muchos n:m
@ManyToOne = Muchos a uno n:1
@OneToOne = Uno a uno 1:1

Antes de definir una relación, debes hacerte unas preguntas:
¿Puede un usuario tener varios tipos de perfiles?
¿Puede un mismo tipo de perfil pertenecer a mas de un usuario?

Para "no y no" = @OneToOne = Uno a uno
Un solo usuario solo puede tener un perfil y un perfil no puede pertenecer a varios usuarios
Para "si y no" = @OneToMany (desde el punto de vista del usuario) = Uno a muchos
Un usuario puede tener varios perfiles pero un perfil solo puede pertenecer a un usuario
Para "si y si" = @ManyToMany = Muchos a muchos
Un usuario puede tener varios perfiles y un perfil puede pertenecer a varios usuarios
Para "no y si" = @ManyToOne = Muchos a uno (desde el punto de vista del usuario)
Un perfil puede pertenecer a varios usuarios pero el usuario solo puede tener 1 perfil

Cita:
3.- Por ultimo como fregados le hago para recuperar datos de ambas tablas ya que si hago un query usando JDBC seria algo asi:
Depende de tus necesidades. Usualmente se obtiene una Session de Hibernate del SessionFactory y se hace una consulta usando find().
Tambien puedes usar Criteria o hacer consultas JPA.

Este tema es mucho mas extenso y requiere mucha mas indagacion por lo que no te puedo poner un ejemplo "facil".