我一直试图让列显示一个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;
}
}
答案 0 :(得分:0)
你需要:
T