Pessoal estou com o seguinte problema em Jsf, como sou novato não sei como resolver:
Tenho uma classe funcionário e uma classe escala, logo um funcionário pode ter zero ou mais escalas (abaixo o código das classes modelos), o problema é como faço para montar a tela que o cliente quer conforme o modelo abaixo, não sei como mapear o value neste caso.
Classe funcionario
@Entity
@Table(name = “Fun_Funcionario”)
public class Fun_Funcionario implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
private Long id;
private String fun_cracha_txt_pk;
private Fun_Funcionario gestor;
private String fun_usuariorede_txt;
private String fun_senha_txt;
private int fun_monitorar_int;
private int fun_ativo_int;
private int fun_responsavel_int;
private String fun_nomefuncionario_txt;
private String fun_email_txt;
private String fun_status_txt;
private int fun_cargahoraria_int;
private int fun_avisos_int;
private int fun_bloqmaquina_int;
private int fun_bloqcatraca_int;
private int fun_bloqdominio_int;
private Grp_GrupoAcesso grp_grupoacesso;
private int fun_deslmaquina_int;
private int fun_deslmaquinatol_int;
private String fun_usuarioredealt_txt;
private String fun_telefone_txt;
private String fun_statusaviso_txt;
private String fun_statuscadastro_txt;
private Per_Perfil per_perfil;
private Set<Cho_CargaHoraria> cargahoraria = new HashSet<Cho_CargaHoraria>(0);
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
@Size(max = 15, min=15)
@Column(length = 15, nullable = true)
public String getFun_cracha_txt_pk() {
return fun_cracha_txt_pk;
}
public void setFun_cracha_txt_pk(String fun_cracha_txt_pk) {
this.fun_cracha_txt_pk = fun_cracha_txt_pk;
}
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "fun_cracharesponsavel_txt_fk", insertable = true, updatable = true, nullable = true)
public Fun_Funcionario getGestor() {
return gestor;
}
public void setGestor(Fun_Funcionario gestor) {
this.gestor = gestor;
}
@Size(max = 30)
@Column(length = 30, nullable = true)
public String getFun_usuariorede_txt() {
return fun_usuariorede_txt;
}
public void setFun_usuariorede_txt(String fun_usuariorede_txt) {
this.fun_usuariorede_txt = fun_usuariorede_txt;
}
@Size(max = 30)
@Column(length = 30, nullable = false)
public String getFun_senha_txt() {
return fun_senha_txt;
}
public void setFun_senha_txt(String fun_senha_txt) {
this.fun_senha_txt = fun_senha_txt;
}
//numero
public int getFun_ativo_int() {
return fun_ativo_int;
}
public void setFun_ativo_int(int fun_ativo_int) {
this.fun_ativo_int = fun_ativo_int;
}
//numero
public int getFun_responsavel_int() {
return fun_responsavel_int;
}
public void setFun_responsavel_int(int fun_responsavel_int) {
this.fun_responsavel_int = fun_responsavel_int;
}
@Size(max = 150)
@Column(length = 150, nullable = false)
public String getFun_nomefuncionario_txt() {
return fun_nomefuncionario_txt;
}
public void setFun_nomefuncionario_txt(String fun_nomefuncionario_txt) {
this.fun_nomefuncionario_txt = fun_nomefuncionario_txt;
}
@Size(max = 100)
@Column(length = 100, nullable = false)
public String getFun_email_txt() {
return fun_email_txt;
}
public void setFun_email_txt(String fun_email_txt) {
this.fun_email_txt = fun_email_txt;
}
@Size(max = 2)
@Column(length = 2, nullable = false)
public String getFun_status_txt() {
return fun_status_txt;
}
public void setFun_status_txt(String fun_status_txt) {
this.fun_status_txt = fun_status_txt;
}
//numero
public int getFun_cargahoraria_int() {
return fun_cargahoraria_int;
}
public void setFun_cargahoraria_int(int fun_cargahoraria_int) {
this.fun_cargahoraria_int = fun_cargahoraria_int;
}
//número
public boolean isFun_monitorar_int() {
return fun_monitorar_int != 0 ;
}
public void setFun_monitorar_int(boolean checked) {
this.fun_monitorar_int = (checked ? 1 : 0);
}
//numero
public boolean isFun_avisos_int() {
return fun_avisos_int != 0;
}
public void setFun_avisos_int(boolean checked) {
this.fun_avisos_int = (checked ? 1 : 0);
}
//numero
public boolean isFun_bloqmaquina_int() {
return fun_bloqmaquina_int != 0;
}
public void setFun_bloqmaquina_int(boolean checked) {
this.fun_bloqmaquina_int = (checked ? 1 : 0);
}
//numero
public boolean isFun_bloqcatraca_int() {
return fun_bloqcatraca_int != 0;
}
public void setFun_bloqcatraca_int(boolean checked) {
this.fun_bloqcatraca_int = (checked ? 1 : 0);
}
//numero
public boolean isFun_bloqdominio_int() {
return fun_bloqdominio_int != 0;
}
public void setFun_bloqdominio_int(boolean checked) {
this.fun_bloqdominio_int = (checked ? 1 : 0);
}
//numero
public boolean isFun_deslmaquina_int() {
return fun_deslmaquina_int != 0;
}
public void setFun_deslmaquina_int(boolean checked) {
this.fun_deslmaquina_int = (checked ? 1 : 0);
}
//numero
public int getFun_deslmaquinatol_int() {
return fun_deslmaquinatol_int;
}
public void setFun_deslmaquinatol_int(int fun_deslmaquinatol_int) {
this.fun_deslmaquinatol_int = fun_deslmaquinatol_int;
}
@ManyToOne(optional = false)
@JoinColumn(name = "grp_grupoacesso")
public Grp_GrupoAcesso getGrupo_acesso() {
return grp_grupoacesso;
}
public void setGrupo_acesso(Grp_GrupoAcesso grp_grupoacesso) {
this.grp_grupoacesso = grp_grupoacesso;
}
@Size(max = 20)
@Column(length = 20, nullable = false)
public String getFun_usuarioredealt_txt() {
return fun_usuarioredealt_txt;
}
public void setFun_usuarioredealt_txt(String fun_usuarioredealt_txt) {
this.fun_usuarioredealt_txt = fun_usuarioredealt_txt;
}
@Size(max = 11)
@Column(length = 11, nullable = false)
public String getFun_telefone_txt() {
return fun_telefone_txt;
}
public void setFun_telefone_txt(String fun_telefone_txt) {
this.fun_telefone_txt = fun_telefone_txt;
}
@Size(max = 2, min=2)
@Column(length = 2, nullable = false)
public String getFun_statusaviso_txt() {
return fun_statusaviso_txt;
}
public void setFun_statusaviso_txt(String fun_statusaviso_txt) {
this.fun_statusaviso_txt = fun_statusaviso_txt;
}
@Size(max = 2)
@Column(length = 2, nullable = false)
public String getFun_statuscadastro_txt() {
return fun_statuscadastro_txt;
}
public void setFun_statuscadastro_txt(String fun_statuscadastro_txt) {
this.fun_statuscadastro_txt = fun_statuscadastro_txt;
}
@ManyToOne(optional = false)
@JoinColumn(name = "per_perfil")
public Per_Perfil getPer_perfil() {
return per_perfil;
}
public void setPer_perfil(Per_Perfil per_perfil) {
this.per_perfil = per_perfil;
}
@OneToMany
@JoinColumn(name="cho_cargahoraria_id")
public List<Cho_CargaHoraria> getCargahoraria() {
List<Cho_CargaHoraria> lista = new ArrayList<>(cargahoraria);
return lista;
}
public void setCargahoraria(Set<Cho_CargaHoraria> cargahoraria) {
this.cargahoraria = cargahoraria;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((id == null) ? 0 : id.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Fun_Funcionario other = (Fun_Funcionario) obj;
if (id == null) {
if (other.id != null)
return false;
} else if (!id.equals(other.id))
return false;
return true;
}
}
Classe carga_horaria
@Entity
@Table(name = “Cho_CargaHoraria”)
public class Cho_CargaHoraria implements Serializable{
/**
*
*/
private static final long serialVersionUID = 1L;
private Long id;
private Fun_Funcionario funcionario;
private int cho_diadasemana_int;
private int cho_horaentrada_int;
private int cho_tolerancia_int;
private int cho_cargahoraria_int;
private int cho_horaextraaut_int;
private int cho_intervalointrajor_int;
private int cho_tempmaxconsecutivo_int;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
@OneToOne(optional=false)
@JoinColumn(
name="fun_funcionario_id", unique=true, nullable=false, updatable=false)
public Fun_Funcionario getFuncionario() {
return funcionario;
}
public void setFuncionario(Fun_Funcionario funcionario) {
this.funcionario = funcionario;
}
public int getCho_diadasemana_int() {
return cho_diadasemana_int;
}
public void setCho_diadasemana_int(int cho_diadasemana_int) {
this.cho_diadasemana_int = cho_diadasemana_int;
}
public int getCho_horaentrada_int() {
return cho_horaentrada_int;
}
public void setCho_horaentrada_int(int cho_horaentrada_int) {
this.cho_horaentrada_int = cho_horaentrada_int;
}
public int getCho_tolerancia_int() {
return cho_tolerancia_int;
}
public void setCho_tolerancia_int(int cho_tolerancia_int) {
this.cho_tolerancia_int = cho_tolerancia_int;
}
public int getCho_cargahoraria_int() {
return cho_cargahoraria_int;
}
public void setCho_cargahoraria_int(int cho_cargahoraria_int) {
this.cho_cargahoraria_int = cho_cargahoraria_int;
}
public int getCho_horaextraaut_int() {
return cho_horaextraaut_int;
}
public void setCho_horaextraaut_int(int cho_horaextraaut_int) {
this.cho_horaextraaut_int = cho_horaextraaut_int;
}
public int getCho_intervalointrajor_int() {
return cho_intervalointrajor_int;
}
public void setCho_intervalointrajor_int(int cho_intervalointrajor_int) {
this.cho_intervalointrajor_int = cho_intervalointrajor_int;
}
public int getCho_tempmaxconsecutivo_int() {
return cho_tempmaxconsecutivo_int;
}
public void setCho_tempmaxconsecutivo_int(int cho_tempmaxconsecutivo_int) {
this.cho_tempmaxconsecutivo_int = cho_tempmaxconsecutivo_int;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((id == null) ? 0 : id.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Cho_CargaHoraria other = (Cho_CargaHoraria) obj;
if (id == null) {
if (other.id != null)
return false;
} else if (!id.equals(other.id))
return false;
return true;
}
}
Imagem da tela
value dos inputs value="#{fun_FuncionarioBean.funcionario.cargahoraria.get(0)}"
Desde já agradeço.
