Foros del Web » Programación para mayores de 30 ;) » Java »

[Hibernate] Campo Pk y a la vez Fk

Estas en el tema de [Hibernate] Campo Pk y a la vez Fk en el foro de Java en Foros del Web. Buenas, estoy comenzando en el mundo hibernate y al ver el modelo de datos me encuentro con una definicion de la que me surgen dudas. ...
  #1 (permalink)  
Antiguo 27/09/2010, 05:34
 
Fecha de Ingreso: abril-2005
Mensajes: 171
Antigüedad: 19 años, 6 meses
Puntos: 0
[Hibernate] Campo Pk y a la vez Fk

Buenas, estoy comenzando en el mundo hibernate y al ver el modelo de datos me encuentro con una definicion de la que me surgen dudas.

Tengo 2 tablas

Tabla 1 --> Empresa con Id_Empresa que es Pk y el resto de campos de una empresa (idioma direccion...)

Tabla 2 --> IP_Empresa con un Id_empresa que es Pk en esta tabla y Fk de la talbla anterior y campos para almacenar la IP.

¿Bien la duda es como mapeo estas tablas? ¿se puede poner con la etiqueta <id> del xml una campo que en el pojo sea objeto?

Ademas esto me pasa en mas tablas de este modelo de datos y con relaciones más dificeles

Muchas gracias.
  #2 (permalink)  
Antiguo 27/09/2010, 06:05
 
Fecha de Ingreso: abril-2007
Mensajes: 54
Antigüedad: 17 años, 7 meses
Puntos: 1
Respuesta: [Hibernate] Campo Pk y a la vez Fk

Clase "hija"

public class ExpVehImplicatsVO extends BaseVO {

private ExpVehImplicatsIdVO id;
private PermisImpVO permisImp;


clase con la clave primaria
public class ExpVehImplicatsIdVO extends BaseVO {

private String NExpedient;

private BigDecimal numVehicle;


clase donde tienes una FK
public class PermisImpVO extends BaseVO {

private String codi;

private String descripcio;



en el HQL, solo accedes a la clase hija!

como recuperar datos pues:

objetoExpVehImplicatsVO.permisImp.codi --> facil


espero haberte ayudado
  #3 (permalink)  
Antiguo 27/09/2010, 08:08
 
Fecha de Ingreso: abril-2005
Mensajes: 171
Antigüedad: 19 años, 6 meses
Puntos: 0
Respuesta: [Hibernate] Campo Pk y a la vez Fk

A ver si me he enterado,

Para cada tabla se crea el mapeo xml-java-tabla como si fueran tablas no relacionadas cada una con su pk propia y luego a mayores creamos una clase java que tenga los dos objetos java creados anteriormente y con esta ultima clase sera con la que realizaremos las consultas donde queramos toda la informacion. ¿ es esto correcto?

Gracias
  #4 (permalink)  
Antiguo 28/09/2010, 01:42
 
Fecha de Ingreso: abril-2007
Mensajes: 54
Antigüedad: 17 años, 7 meses
Puntos: 1
Respuesta: [Hibernate] Campo Pk y a la vez Fk

Algo asi, bueno, si la clase "padre" tambien hace referencia a la PK de una clase "hija" tambien con llamar solo al padre,obtienes tambien todos los datos de los "hijos"-relacionados con FK con solo 1 consulta.

Sea como sea (si accedes desde el padre o el hijo) solo tienes que hacer una consulta en el HQL de esa clase (Sin joins ni nada).


ejemplo

Código C++:
Ver original
  1. <bean name="valueListHandler"
  2.         class="net.mlw.vlh.DefaultValueListHandlerImpl" lazy-init="true">
  3.         <property name="config.adapters">
  4.             <map>                
  5.                 <!-- Inclou aqui les consultes dels teus llistats; tambe pots definir llistats -->
  6.                 <!-- que no heretin de baseHibernateAdapter, i utilitzar la teva implementacio. -->
  7.                 <entry key="expVehImplicatsList">
  8.                     <bean parent="baseHibernateAdapter">                          
  9.                         <property name="hql">
  10.                             <value>
  11.                             [B]FROM
  12.                             xxx.VO.ExpVehImplicatsVO AS ve WHERE 1=1 AND ve.tipus =2 AND ve.id.NExpedient = '[num_expediente]'
  13. /~sortColumn: ORDER BY ve.[sortColumn] [/B][sortDirection]~/
  14.                             </value>
  15.                         </property>
  16.                     </bean>
  17.                 </entry>
  18.             </map>
  19.         </property>
  20.     </bean>

esto seria por ejemplo para un listado.
  #5 (permalink)  
Antiguo 28/09/2010, 02:15
 
Fecha de Ingreso: abril-2005
Mensajes: 171
Antigüedad: 19 años, 6 meses
Puntos: 0
Respuesta: [Hibernate] Campo Pk y a la vez Fk

Muchas gracias Juanmi y Muchas gracias Hibernate Tools jejeje. Acabo de conseguir hacerlo correr y este caso lo que me hace es lo siguiente, por si alguien mas esta en la situacion.

Clase Empresa --> BD: id_empresa(pk), campo 1 , campo 2.....
VO: pk como String resto como objetos, lista....
XML: campo pk como id, resto como properties y list

Clase IP Empresa (la que tenia el problema)--> BD: id_empresa(pk; fk con empresa), campo 1 , campo 2.....

Xml: <id name="idEmpresa" type="string">
<column name="IDEMPRESA" length="15" />
<generator class="foreign">
<param name="property">tmEmpresas</param>
</generator>
</id>

y resto de campos como properties

VO: private String codEmpresa;
private TmEmpresas tmEmpresas;
Resto de campos con el tipo de dato definido en el properties


Grande Hibernate Tools, a espensas de que me encuentre desagradables sorpresas que tenga que corregir a mano jejejeje
  #6 (permalink)  
Antiguo 28/09/2010, 02:38
 
Fecha de Ingreso: abril-2007
Mensajes: 54
Antigüedad: 17 años, 7 meses
Puntos: 1
Respuesta: [Hibernate] Campo Pk y a la vez Fk

me alegro que te haya servido lo que te he pasado men ;)

Etiquetas: hibernate, campos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:05.