Java - Persistence Anotations

 
Vista:

Persistence Anotations

Publicado por Kooper (2 intervenciones) el 07/02/2011 23:11:46
Hola, tengo un proyecto java con hibernate, tengo una herencia: superclase persona y subclases paciente y medico.
En la BBDD tengo:
--TABLA PERSONAS
create table personas(
dni char(9) primary key,
nombre char(20) not null,
apellido1 char(30) not null,
apellido2 char(30),
fecha_nac date not null,
direccion char(255),
telefono1 integer,
telefono2 integer,
mail char(60),
fecha_alta date not null,
fecha_baja date,
tipo char(1) not null);

--TABLA PACIENTES
create table pacientes(
dni char(9) primary key,
CONSTRAINT fk_pacientes1 FOREIGN KEY (dni)
REFERENCES personas(dni));

--TABLA MEDICOS
create table medicos(
dni char(9) primary key,
codcolegiado integer not null,
despacho char(4),
codservicio integer,
CONSTRAINT fk_medicos1 FOREIGN KEY (codservicio)
REFERENCES servicios(codservicio),
CONSTRAINT fk_medicos2 FOREIGN KEY (dni)
REFERENCES personas(dni));

Ahora he creado las clases de la siguiente forma:

@Entity
@Table(name="personas")
@Inheritance(strategy = InheritanceType.JOINED)
public class Persona{
private String nombre;
private String apellido1;
private String apellido2;
private Date fechaNac;
private String dni;
private String direccion;
private Integer telefono1;
private Integer telefono2;
private String mail;
private Date fechaAlta;
private Date fechaBaja;
private String tipo;

public Persona() {
}

public Persona(String nombre, String apellido1, String apellido2, Date fechaNac, String dni, String direccion, Integer telefono1, Integer telefono2, String mail, Date fechaAlta) {
this.nombre = nombre;
this.apellido1 = apellido1;
this.apellido2 = apellido2;
this.fechaNac = fechaNac;
this.dni = dni;
this.direccion = direccion;
this.telefono1 = telefono1;
this.telefono2 = telefono2;
this.mail = mail;
this.fechaAlta = fechaAlta;
}

@Id
@Column(name="dni",length=9)
public String getDni() {
return dni;
}
...
}

@Entity
@Table(name="pacientes")
public class Paciente extends Persona{

public Paciente() {
}

public Paciente(String nombre, String apellido1, String apellido2, Date fechaNac, String dni, String direccion, Integer telefono1, Integer telefono2, String mail, Date fechaAlta) {
super(nombre, apellido1, apellido2, fechaNac, dni, direccion, telefono1, telefono2, mail, fechaAlta);
}

}

@Entity
@Table(name="medicos")
public class Medico extends Persona{
private Integer codcolegiado;
private String despacho;
private Servicio servicio;

public Medico() {
}

public Medico(String nombre, String apellido1, String apellido2, Date fechaNac, String dni, String direccion, Integer telefono1, Integer telefono2, String mail, Date fechaAlta, Integer codmedico, Integer codcolegiado, String despacho) {
super(nombre, apellido1, apellido2, fechaNac, dni, direccion, telefono1, telefono2, mail, fechaAlta);
this.codcolegiado = codcolegiado;
this.despacho = despacho;
}

@Column(name="codcolegiado",nullable=false)
public Integer getCodcolegiado() {
return codcolegiado;
}

public void setCodcolegiado(Integer codcolegiado) {
this.codcolegiado = codcolegiado;
}

@Column(name="despacho",length=4)
public String getDespacho() {
return despacho;
}

public void setDespacho(String despacho) {
this.despacho = despacho;
}
....
}

El problema es q al crear un paciente e insertar solo me inserta el DNi en la tabla pacientes, en personas no me inserta nada. Alguien me podría ayudar?

Algun consejo o recomendación?

Muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Persistence Anotations

Publicado por nkox (1 intervención) el 08/02/2011 02:18:54
Hola

Mira acá: http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=hibInheritance

Busca en google por : hibernate anotaciones herencia

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar