Hola spcruzaley.
Si persiste bien el campo descripcion en la BD.
Te paso nuevamente como queda la clase aparatos:
@Entity
@Inheritance
@DiscriminatorColumn(name = "descripcion", discriminatorType = STRING)
@DiscriminatorValue("Luz")
@Table(name = "aparato")
public class Aparato implements Serializable{
@Id
@SequenceGenerator(name="sec_idAparato", initialValue=1, allocationSize=1)
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="sec_idAparato")
@Column(name = "idAparato")
private Integer idAparato;
@Column(name = "tipoSalida", nullable = true, unique = false)
private char tipoSalida='A';
@ManyToOne
@JoinColumn(name = "nroHabitacion")
private Habitacion unaHabitacion;
public Aparato(Habitacion unaHabitacion) {
this.idAparato = idAparato;
this.unaHabitacion = unaHabitacion;
}
public Aparato () { };
public Integer getIdAparato() {
return idAparato;
}
public void setIdAparato(Integer idAparato) {
this.idAparato = idAparato;
}
public char getTipoSalida() {
return tipoSalida;
}
public void setTipoSalida(char tipoSalida) {
this.tipoSalida = tipoSalida;
}
public Habitacion getUnaHabitacion() {
return unaHabitacion;
}
public void setUnaHabitacion(Habitacion unaHabitacion) {
this.unaHabitacion = unaHabitacion;
}
@Transient
public String getDescripcion(){
DiscriminatorValue value = this.getClass().getAnnotation(DiscriminatorValue.class);
return value == null ? null : value.value();
}
@Override
public String toString() {
return idAparato + "-" + this.getDescripcion();
}
}
No muestra en el jtable cuando agrego Ventilador y Aire, cuando agrego Luz, si muestra.
Todos los datos persisten en la BD.
Si salgo de la ejecucion y vuelve a Ejecutar el proyecto ahi me muestra los 3 datos agregado.
asi queda el metodo mostrarAparatos
private void mostrarAparatos(Habitacion unaHabitacion){
this.auxUnaHabitacion=unaHabitacion;
try {
MyTableModel tabla = new MyTableModel();
tabla.isCellEditable(0, 0);
tabla.setColumnCount(0);
tabla.addColumn("ID Aparato");
tabla.addColumn("Aparato");
this.auxUnaHabitacion=unaHabitacion;
Iterator <Aparato> listAparato = this.auxUnaHabitacion.getAparatos().iterator();
Aparato inte;
while(listAparato.hasNext()){
inte = listAparato.next();
System.out.println("veeeeer..." + inte.getIdAparato()+" .. "+inte.getDescripcion());
tabla.addRow(new Object[]{
inte.getIdAparato(),inte.getDescripcion()
});
}
this.tableAparatos.setModel(tabla);
tableAparatos.setLayout(null);
} catch (SecurityException e) {
} catch (HeadlessException e) {
}
}
Me eh dado cuenta que aca esta mi proble
this.auxUnaHabitacion=unaHabitacion;
Iterator <Aparato> listAparato = this.auxUnaHabitacion.getAparatos().iterator();
Aparato inte;
while(listAparato.hasNext()){
inte = listAparato.next();
System.out.println("veeeeer..." + inte.getIdAparato()+" .. "+inte.getDescripcion());
tabla.addRow(new Object[]{
inte.getIdAparato(),inte.getDescripcion()
});
No esta ingresando cuando agrego alguno de sus hijos
Agradezco muchísimo tu ayuda!
Si persiste bien el campo descripcion en la BD.
Te paso nuevamente como queda la clase aparatos:
@Entity
@Inheritance
@DiscriminatorColumn(name = "descripcion", discriminatorType = STRING)
@DiscriminatorValue("Luz")
@Table(name = "aparato")
public class Aparato implements Serializable{
@Id
@SequenceGenerator(name="sec_idAparato", initialValue=1, allocationSize=1)
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="sec_idAparato")
@Column(name = "idAparato")
private Integer idAparato;
@Column(name = "tipoSalida", nullable = true, unique = false)
private char tipoSalida='A';
@ManyToOne
@JoinColumn(name = "nroHabitacion")
private Habitacion unaHabitacion;
public Aparato(Habitacion unaHabitacion) {
this.idAparato = idAparato;
this.unaHabitacion = unaHabitacion;
}
public Aparato () { };
public Integer getIdAparato() {
return idAparato;
}
public void setIdAparato(Integer idAparato) {
this.idAparato = idAparato;
}
public char getTipoSalida() {
return tipoSalida;
}
public void setTipoSalida(char tipoSalida) {
this.tipoSalida = tipoSalida;
}
public Habitacion getUnaHabitacion() {
return unaHabitacion;
}
public void setUnaHabitacion(Habitacion unaHabitacion) {
this.unaHabitacion = unaHabitacion;
}
@Transient
public String getDescripcion(){
DiscriminatorValue value = this.getClass().getAnnotation(DiscriminatorValue.class);
return value == null ? null : value.value();
}
@Override
public String toString() {
return idAparato + "-" + this.getDescripcion();
}
}
No muestra en el jtable cuando agrego Ventilador y Aire, cuando agrego Luz, si muestra.
Todos los datos persisten en la BD.
Si salgo de la ejecucion y vuelve a Ejecutar el proyecto ahi me muestra los 3 datos agregado.
asi queda el metodo mostrarAparatos
private void mostrarAparatos(Habitacion unaHabitacion){
this.auxUnaHabitacion=unaHabitacion;
try {
MyTableModel tabla = new MyTableModel();
tabla.isCellEditable(0, 0);
tabla.setColumnCount(0);
tabla.addColumn("ID Aparato");
tabla.addColumn("Aparato");
this.auxUnaHabitacion=unaHabitacion;
Iterator <Aparato> listAparato = this.auxUnaHabitacion.getAparatos().iterator();
Aparato inte;
while(listAparato.hasNext()){
inte = listAparato.next();
System.out.println("veeeeer..." + inte.getIdAparato()+" .. "+inte.getDescripcion());
tabla.addRow(new Object[]{
inte.getIdAparato(),inte.getDescripcion()
});
}
this.tableAparatos.setModel(tabla);
tableAparatos.setLayout(null);
} catch (SecurityException e) {
} catch (HeadlessException e) {
}
}
Me eh dado cuenta que aca esta mi proble
this.auxUnaHabitacion=unaHabitacion;
Iterator <Aparato> listAparato = this.auxUnaHabitacion.getAparatos().iterator();
Aparato inte;
while(listAparato.hasNext()){
inte = listAparato.next();
System.out.println("veeeeer..." + inte.getIdAparato()+" .. "+inte.getDescripcion());
tabla.addRow(new Object[]{
inte.getIdAparato(),inte.getDescripcion()
});
No esta ingresando cuando agrego alguno de sus hijos
Agradezco muchísimo tu ayuda!