在javafx上的tableview中没有填充列

时间:2016-10-27 19:34:49

标签: java javafx

我一直试图让列显示一个paciente和empleado的字符串,但它们仍显示为空,其他列很好,它们显示了它们应该显示的内容,但这些2(paciente和empleado)仍然是空的。我认为这是因为他们的属性,他们有不同的名字,我试过,但他们仍然是空的,我能有一些关于如何以正确的方式做到这一点的提示吗?

columnaCitasFecha.setCellValueFactory(new PropertyValueFactory<Cita, Date>("fecha"));
columnaCitasHora.setCellValueFactory(new PropertyValueFactory<Cita, Time>("hora"));
columnaCitasPaciente.setCellValueFactory(new PropertyValueFactory<Paciente, String>("nombrePaciente"));
columnaCitasDentista.setCellValueFactory(new PropertyValueFactory<Empleado, String>("nombreEmpleado"));
columnaCitasTratamiento.setCellValueFactory(new PropertyValueFactory<Cita, Set<Tratamiento>>("listaTratamientos"));


@Entity
@Table(name = "CITA")
public class Cita implements Serializable{
    private long id;
    private Date fecha;
    private Time hora;
    private Paciente paciente;
    private Empleado empleado;
    private Set<Tratamiento> listaTratamientos;

    public Cita() {
        fecha = null;
        hora = null;
        paciente = null;
        empleado = null;
        listaTratamientos = null;
    }

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "CITA_ID", nullable = false)
    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    @Column(name = "FECHA", nullable = false)
    public Date getFecha() {
        return fecha;
    }

    public void setFecha(Date fecha) {
        this.fecha = fecha;
    }

    @Column(name = "HORA", nullable = false)
    public Time getHora() {
        return hora;
    }

    public void setHora(Time hora) {
        this.hora = hora;
    }

    @OneToOne(cascade = CascadeType.ALL)
    @JoinColumn(name = "PACIENTE_ID")
    public Paciente getPaciente() {
        return paciente;
    }

    public void setPaciente(Paciente paciente) {
        this.paciente = paciente;
    }

    @OneToOne(cascade = CascadeType.ALL)
    @JoinColumn(name = "EMPLEADO_ID")
    public Empleado getEmpleado() {
        return empleado;
    }

    public void setEmpleado(Empleado empleado) {
        this.empleado = empleado;
    }

    @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
    @JoinTable(name = "CITA_TRATAMIENTO", joinColumns = {@JoinColumn(name = "CITA_ID", referencedColumnName = "CITA_ID")}, inverseJoinColumns = {@JoinColumn(name = "TRATAMIENTO_ID", referencedColumnName = "T_ID", unique = true)})
    public Set<Tratamiento> getListaTratamientos() {
        return listaTratamientos;
    }

    public void setListaTratamientos(Set<Tratamiento> listaTratamientos) {
        this.listaTratamientos = listaTratamientos;
    }
}

未填充的2列是Persona和Paciente,以下是类:

@Entity
@Table(name = "PERSONA")
@Inheritance(strategy = InheritanceType.JOINED)
public class Persona implements Serializable{
    private long id;
    private String nombre;
    private String apellido;
    private Sexo sexo;
    private Date fechaNacimiento;
    private String estadoCivil;
    private String ocupacion;
    private String nacionalidad;
    private String telefono;
    private String celular;
    private String direccion;
    private String correoElectronico;
    private Date fechaRegistrado;
    private Date fechaActualizado;

    public Persona(){
        nombre = "";
        apellido = "";
        sexo = null;
        fechaNacimiento = null;
        estadoCivil = "";
        ocupacion = "";
        nacionalidad = "";
        telefono = "";
        celular = "";
        direccion = "";
        correoElectronico = "";
        fechaRegistrado = null;
        fechaActualizado = null;
    }

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "ID", nullable = false)
    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    @Column(name = "NOMBRE", nullable = false)
    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    @Column(name = "APELLIDO", nullable = false)
    public String getApellido() {
        return apellido;
    }

    public void setApellido(String apellido) {
        this.apellido = apellido;
    }

    @Enumerated(EnumType.STRING)
    @Column(name = "SEXO", nullable = false)
    public Sexo getSexo() {
        return sexo;
    }

    public void setSexo(Sexo sexo) {
        this.sexo = sexo;
    }

    @Column(name = "FECHA_NACIMIENTO", nullable = false)
    public Date getFechaNacimiento() {
        return fechaNacimiento;
    }

    public void setFechaNacimiento(Date fechaNacimiento) {
        this.fechaNacimiento = fechaNacimiento;
    }

    @Column(name = "ESTADO_CIVIL")
    public String getEstadoCivil() {
        return estadoCivil;
    }

    public void setEstadoCivil(String estadoCivil) {
        this.estadoCivil = estadoCivil;
    }

    @Column(name = "OCUPACION")
    public String getOcupacion() {
        return ocupacion;
    }

    public void setOcupacion(String ocupacion) {
        this.ocupacion = ocupacion;
    }

    @Column(name = "NACIONALIDAD")
    public String getNacionalidad() {
        return nacionalidad;
    }

    public void setNacionalidad(String nacionalidad) {
        this.nacionalidad = nacionalidad;
    }

    @Column(name = "TELEFONO")
    public String getTelefono() {
        return telefono;
    }

    public void setTelefono(String telefono) {
        this.telefono = telefono;
    }

    @Column(name = "CELULAR")
    public String getCelular() {
        return celular;
    }

    public void setCelular(String celular) {
        this.celular = celular;
    }

    @Column(name = "DIRECCION")
    public String getDireccion() {
        return direccion;
    }

    public void setDireccion(String direccion) {
        this.direccion = direccion;
    }

    @Column(name = "CORREO_ELECTRONICO")
    public String getCorreoElectronico() {
        return correoElectronico;
    }

    public void setCorreoElectronico(String correoElectronico) {
        this.correoElectronico = correoElectronico;
    }

    @Column(name = "FECHA_REGISTRADO", nullable = false)
    public Date getFechaRegistrado() {
        return fechaRegistrado;
    }

    public void setFechaRegistrado(Date fechaRegistrado) {
        this.fechaRegistrado = fechaRegistrado;
    }

    @Column(name = "FECHA_ACTUALIZADO", nullable = false)
    public Date getFechaActualizado() {
        return fechaActualizado;
    }

    public void setFechaActualizado(Date fechaActualizado) {
        this.fechaActualizado = fechaActualizado;
    }
}

@Entity
@Table(name = "PACIENTE")
@PrimaryKeyJoinColumn(name = "PACIENTE_ID")
public class Paciente extends Persona implements Serializable {

    private String nombrePaciente;

    public Paciente() {
        super();
    }

    @Transient
    public String getNombrePaciente() {
        return this.getNombre() + " " + this.getApellido();
    }

    public void setNombrePaciente(String nombrePaciente) {
        this.nombrePaciente = nombrePaciente;
    }
}


@Entity
@Table(name = "EMPLEADO")
@PrimaryKeyJoinColumn(name = "EMPLEADO_ID")
public class Empleado extends Persona implements Serializable {
    private TipoEmpleado tipoEmpleado;
    private String nombreEmpleado;

    public Empleado(){
        super();
        tipoEmpleado = null;
    }

    @Column(name = "TIPO_EMPLEADO", nullable = false)
    @Enumerated(EnumType.STRING)
    public TipoEmpleado getTipoEmpleado() {
        return tipoEmpleado;
    }

    public void setTipoEmpleado(TipoEmpleado tipoEmpleado) {
        this.tipoEmpleado = tipoEmpleado;
    }

    @Transient
    public String getNombreEmpleado() {
        return this.getNombre() + " " + this.getApellido();
    }

    public void setNombreEmpleado(String nombreEmpleado) {
        this.nombreEmpleado = nombreEmpleado;
    }
}

1 个答案:

答案 0 :(得分:0)

你需要:

T