COLABORADOR:
package catalogo.modelo;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
import javax.persistence.*;
import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;
import org.hibernate.annotations.Fetch;
import org.hibernate.annotations.FetchMode;
@Entity
@Table(name = "colaborador", schema = "catalogo")
@Inheritance(strategy = InheritanceType.JOINED)
public class Colaborador implements Serializable
{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name="id_colaborador")
private int id;
@Column(name="nome")
private String nome;
@Column(name="data_nascimento")
@Temporal(TemporalType.DATE)
private Date dataNascimento;
@Column(name="naturalidade")
private String naturalidade;
@Column(name="nacionalidade")
private String nacionalidade;
@Column(name="sexo")
private String sexo;
@Column(name="tipo_sanguineo")
private String tipoSanguineo;
@Column(name="fator_rh")
private String fatorRh;
@Column(name="pai")
private String pai;
@Column(name="mae")
private String mae;
@Column(name="estado_civil")
private String estadoCivil;
@Column(name="conjuge")
private String conjuge;
@Column(name="dependentes")
private String dependentes;
@OneToOne
@JoinColumn(name = "id_endereco", referencedColumnName = "id_endereco", insertable = true, updatable = true)
@Cascade(CascadeType.ALL)
private Endereco endereco;
@Column(name="telefone1")
private String telefone1;
@Column(name="telefone2")
private String telefone2;
@Column(name="celular1")
private String celular1;
@Column(name="celular2")
private String celular2;
@Column(name="email_pessoal")
private String emailPessoal;
@Column(name="email_institucional")
private String emailInstitucional;
@Column(name="rg")
private String rg;
@Column(name="orgao_expedidor")
private String orgaoExpedidor;
@Column(name="expedicao_rg")
@Temporal(TemporalType.DATE)
private Date expedicaoRg;
@Column(name="cpf")
private String cpf;
@Column(name="titulo_eleitoral")
private String tituloEleitoral;
@Column(name="pis_pasep")
private String pisPasep;
@Column(name="conselho_classe")
private String conselhoClasse;
@Column(name="data_admissao")
@Temporal(value=javax.persistence.TemporalType.DATE)
private Date dataAdmissao;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "id_instituicao", referencedColumnName = "id_instituicao", insertable = true, updatable = true)
@Fetch(FetchMode.JOIN)
@Cascade(CascadeType.PERSIST)
private Instituicao instituicao;
@Column(name="observacoes")
private String observacoes;
@OneToOne
@JoinColumn(name = "id_foto", referencedColumnName = "id_foto")
@Cascade(CascadeType.SAVE_UPDATE)
private Foto foto;
@Column(name="situacao")
private String situacao;
@Column(name="placa_veiculo")
private String placaVeiculo;
@Column(name="num_cadastro_veiculo")
private String cadastroVeiculo;
@Column(name="descricao_veiculo")
private String descricaoVeiculo;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "id_funcao", referencedColumnName = "id_funcao", insertable = true, updatable = true)
@Fetch(FetchMode.JOIN)
@Cascade(CascadeType.PERSIST)
private Funcao funcao;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "id_setor", referencedColumnName = "id", insertable = true, updatable = true)
@Fetch(FetchMode.JOIN)
@Cascade(CascadeType.PERSIST)
private Setor setor;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "id_cargo", referencedColumnName = "id_cargo", insertable = true, updatable = true)
@Fetch(FetchMode.JOIN)
@Cascade(CascadeType.PERSIST)
private Cargo cargo;
@Column(name="data_desligamento")
@Temporal(TemporalType.DATE)
private Date dataDesligamento;
/*@ManyToMany(fetch=FetchType.EAGER)
@JoinTable(name="colaborador_ferias", schema="catalogo",
joinColumns=@JoinColumn(name="id_colaborador"),
inverseJoinColumns=@JoinColumn(name="id_ferias"))
@Fetch(FetchMode.JOIN)
@Cascade(CascadeType.ALL)
private Collection<Ferias> ferias;*/
@ManyToMany(mappedBy = "colaboradores", cascade = javax.persistence.CascadeType.ALL)
private List<Ferias> ferias;
public Colaborador()
{
}
public String getCelular1()
{
return celular1;
}
public void setCelular1(String celular1)
{
this.celular1 = celular1;
}
public String getCelular2()
{
return celular2;
}
public void setCelular2(String celular2)
{
this.celular2 = celular2;
}
public String getConjuge()
{
return conjuge;
}
public void setConjuge(String conjuge)
{
this.conjuge = conjuge;
}
public String getConselhoClasse()
{
return conselhoClasse;
}
public void setConselhoClasse(String conselhoClasse)
{
this.conselhoClasse = conselhoClasse;
}
public String getCpf()
{
return cpf;
}
public void setCpf(String cpf)
{
this.cpf = cpf;
}
public Date getDataAdmissao()
{
return dataAdmissao;
}
public void setDataAdmissao(Date dataAdmissao)
{
this.dataAdmissao = dataAdmissao;
}
public Date getDataNascimento()
{
return dataNascimento;
}
public void setDataNascimento(Date dataNascimento)
{
this.dataNascimento = dataNascimento;
}
public String getDependentes()
{
return dependentes;
}
public void setDependentes(String dependentes)
{
this.dependentes = dependentes;
}
public String getEmailInstitucional()
{
return emailInstitucional;
}
public void setEmailInstitucional(String emailInstitucional)
{
this.emailInstitucional = emailInstitucional;
}
public String getEmailPessoal()
{
return emailPessoal;
}
public void setEmailPessoal(String emailPessoal)
{
this.emailPessoal = emailPessoal;
}
public String getEstadoCivil()
{
return estadoCivil;
}
public void setEstadoCivil(String estadoCivil)
{
this.estadoCivil = estadoCivil;
}
public Date getExpedicaoRg()
{
return expedicaoRg;
}
public void setExpedicaoRg(Date expedicaoRg)
{
this.expedicaoRg = expedicaoRg;
}
public String getFatorRh()
{
return fatorRh;
}
public void setFatorRh(String fatorRh)
{
this.fatorRh = fatorRh;
}
public int getId()
{
return id;
}
public void setId(int id)
{
this.id = id;
}
public String getMae()
{
return mae;
}
public void setMae(String mae)
{
this.mae = mae;
}
public String getNacionalidade()
{
return nacionalidade;
}
public void setNacionalidade(String nacionalidade)
{
this.nacionalidade = nacionalidade;
}
public String getNaturalidade()
{
return naturalidade;
}
public void setNaturalidade(String naturalidade)
{
this.naturalidade = naturalidade;
}
public String getNome()
{
return nome;
}
public void setNome(String nome)
{
this.nome = nome;
}
public String getObservacoes()
{
return observacoes;
}
public void setObservacoes(String observacoes)
{
this.observacoes = observacoes;
}
public String getOrgaoExpedidor()
{
return orgaoExpedidor;
}
public void setOrgaoExpedidor(String orgaoExpedidor)
{
this.orgaoExpedidor = orgaoExpedidor;
}
public String getPai()
{
return pai;
}
public void setPai(String pai)
{
this.pai = pai;
}
public String getPisPasep()
{
return pisPasep;
}
public void setPisPasep(String pisPasep)
{
this.pisPasep = pisPasep;
}
public String getRg()
{
return rg;
}
public void setRg(String rg)
{
this.rg = rg;
}
public String getSexo()
{
return sexo;
}
public void setSexo(String sexo)
{
this.sexo = sexo;
}
public String getSituacao()
{
return situacao;
}
public void setSituacao(String situacao)
{
this.situacao = situacao;
}
public String getTelefone1()
{
return telefone1;
}
public void setTelefone1(String telefone1)
{
this.telefone1 = telefone1;
}
public String getTelefone2()
{
return telefone2;
}
public void setTelefone2(String telefone2)
{
this.telefone2 = telefone2;
}
public String getTipoSanguineo()
{
return tipoSanguineo;
}
public void setTipoSanguineo(String tipoSanguineo)
{
this.tipoSanguineo = tipoSanguineo;
}
public String getTituloEleitoral()
{
return tituloEleitoral;
}
public void setTituloEleitoral(String tituloEleitoral)
{
this.tituloEleitoral = tituloEleitoral;
}
public Endereco getEndereco()
{
return endereco;
}
public void setEndereco(Endereco endereco)
{
this.endereco = endereco;
}
public Instituicao getInstituicao()
{
return instituicao;
}
public void setInstituicao(Instituicao instituicao)
{
this.instituicao = instituicao;
}
public Foto getFoto()
{
return foto;
}
public void setFoto(Foto foto)
{
this.foto = foto;
}
public Cargo getCargo()
{
return cargo;
}
public void setCargo(Cargo cargo)
{
this.cargo = cargo;
}
public Funcao getFuncao()
{
return funcao;
}
public void setFuncao(Funcao funcao)
{
this.funcao = funcao;
}
public Setor getSetor()
{
return setor;
}
public void setSetor(Setor setor)
{
this.setor = setor;
}
public String getCadastroVeiculo()
{
return cadastroVeiculo;
}
public void setCadastroVeiculo(String cadastroVeiculo)
{
this.cadastroVeiculo = cadastroVeiculo;
}
public String getDescricaoVeiculo()
{
return descricaoVeiculo;
}
public void setDescricaoVeiculo(String descricaoVeiculo)
{
this.descricaoVeiculo = descricaoVeiculo;
}
public String getPlacaVeiculo()
{
return placaVeiculo;
}
public void setPlacaVeiculo(String placaVeiculo)
{
this.placaVeiculo = placaVeiculo;
}
public Date getDataDesligamento() {
return dataDesligamento;
}
public void setDataDesligamento(Date dataDesligamento) {
this.dataDesligamento = dataDesligamento;
}
public List<Ferias> getFerias() {
return ferias;
}
public void setFerias(List<Ferias> ferias) {
this.ferias = ferias;
}
}
FERIAS:
[code]package catalogo.modelo;
import java.io.Serializable;
import java.util.Collection;
import java.util.Date;
import java.util.List;
import javax.persistence.*;
@Entity
@Table(name = “ferias”, schema = “catalogo”)
public class Ferias implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name="id_ferias")
private int idFerias;
@Column(name="tipo")
private String tipo;
@Column(name="exercicio")
private int exercicio;
@Column(name="periodo1")
private int periodo1;
@Column(name="inicio1")
@Temporal(TemporalType.DATE)
private Date inicio1;
@Column(name="periodo2")
private int periodo2;
@Column(name="inicio2")
@Temporal(TemporalType.DATE)
private Date inicio2;
private String obs;
/*@ManyToMany(fetch=FetchType.LAZY)
@JoinTable(name="colaborador_ferias", schema="catalogo",
joinColumns={@JoinColumn(name="id_ferias")},
inverseJoinColumns={@JoinColumn(name="id_colaborador")})
@Fetch(FetchMode.JOIN)
@Cascade(CascadeType.ALL)
private Collection<Colaborador> colaboradores;*/
@ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JoinTable(name="colaborador_ferias", schema = "catalogo",
joinColumns={@JoinColumn(name="id_ferias")},
inverseJoinColumns={@JoinColumn(name="id_colaborador")})
private List colaboradores;
public Ferias(){
}
public int getExercicio() {
return exercicio;
}
public void setExercicio(int exercicio) {
this.exercicio = exercicio;
}
public int getIdFerias() {
return idFerias;
}
public void setIdFerias(int idFerias) {
this.idFerias = idFerias;
}
public Date getInicio1() {
return inicio1;
}
public void setInicio1(Date inicio1) {
this.inicio1 = inicio1;
}
public Date getInicio2() {
return inicio2;
}
public void setInicio2(Date inicio2) {
this.inicio2 = inicio2;
}
public String getObs() {
return obs;
}
public void setObs(String obs) {
this.obs = obs;
}
public int getPeriodo1() {
return periodo1;
}
public void setPeriodo1(int periodo1) {
this.periodo1 = periodo1;
}
public int getPeriodo2() {
return periodo2;
}
public void setPeriodo2(int periodo2) {
this.periodo2 = periodo2;
}
public String getTipo() {
return tipo;
}
public void setTipo(String tipo) {
this.tipo = tipo;
}
public List<Colaborador> getColaboradores() {
return colaboradores;
}
public void setColaboradores(List<Colaborador> colaboradores) {
this.colaboradores = colaboradores;
}
}
[/code]
ACTION:
package catalogo.controle.actions;
import catalogo.controle.forms.FeriasForm;
import catalogo.dao.GenericDAO;
import catalogo.modelo.Colaborador;
import catalogo.modelo.Ferias;
import catalogo.util.ConverterData;
import java.util.ArrayList;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.*;
public class CadastrarFeriasAction extends Action
{
private String retorno;
private String msg;
public CadastrarFeriasAction(){
}
@Override
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)
throws Exception
{
FeriasForm feriasForm = (FeriasForm)form;
Colaborador colaborador = new Colaborador();
Ferias ferias = new Ferias();
/*int idColaborador = Integer.parseInt(feriasForm.getIdColaborador());
GenericDAO colaboradorDao = new GenericDAO(Colaborador.class);
colaborador = (Colaborador) colaboradorDao.carregarPeloId(idColaborador);
colaborador.setFerias(new ArrayList<Ferias>());
ferias.setTipo(feriasForm.getTipo());
ferias.setExercicio(Integer.parseInt(feriasForm.getExercicio()));
ferias.setPeriodo1(Integer.parseInt(feriasForm.getPeriodo1()));
ferias.setInicio1(ConverterData.converteData(feriasForm.getInicio1()));
ferias.setPeriodo2(Integer.parseInt(feriasForm.getPeriodo2()));
ferias.setInicio2(ConverterData.converteData(feriasForm.getInicio2()));
ferias.setObs(feriasForm.getObs());
ferias.setColaboradores(new ArrayList<Colaborador>()); */
GenericDAO colaboradorDao = new GenericDAO(Colaborador.class);
colaborador = (Colaborador) colaboradorDao.carregarPeloId(52);
colaborador.setFerias(new ArrayList<Ferias>());
ferias.setTipo("Oficial");
ferias.setExercicio(Integer.parseInt("2011"));
ferias.setPeriodo1(Integer.parseInt("15"));
ferias.setInicio1(ConverterData.converteData("21/10/2011"));
ferias.setPeriodo2(Integer.parseInt("15"));
ferias.setInicio2(ConverterData.converteData("15/12/2001"));
ferias.setObs("teste");
ferias.setColaboradores(new ArrayList<Colaborador>());
colaborador.getFerias().add(ferias);
ferias.getColaboradores().add(colaborador);
GenericDAO dao = new GenericDAO(Ferias.class);
try {
dao.salvar(colaborador);
retorno = "sucesso";
msg = "As férias do funcionário foram cadastradas com sucesso!";
}
catch (Exception e) {
retorno = "erro";
msg = "Não foi possível salvar as férias do funcionário! " + e.getMessage().toString();
e.printStackTrace();
}
request.setAttribute("msg", msg);
return mapping.findForward(retorno);
}
}
ACTIONFORM:
package catalogo.controle.forms;
import org.apache.struts.action.ActionForm;
public class FeriasForm extends ActionForm {
//private int idFerias;
private String idColaborador;
private String tipo;
//private int exercicio;
private String exercicio;
private String periodo1;
private String inicio1;
private String periodo2;
private String inicio2;
private String obs;
public FeriasForm(){
}
public String getExercicio() {
return exercicio;
}
public void setExercicio(String exercicio) {
this.exercicio = exercicio;
}
public String getIdColaborador() {
return idColaborador;
}
public void setIdColaborador(String idColaborador) {
this.idColaborador = idColaborador;
}
public String getInicio1() {
return inicio1;
}
public void setInicio1(String inicio1) {
this.inicio1 = inicio1;
}
public String getInicio2() {
return inicio2;
}
public void setInicio2(String inicio2) {
this.inicio2 = inicio2;
}
public String getObs() {
return obs;
}
public void setObs(String obs) {
this.obs = obs;
}
public String getPeriodo1() {
return periodo1;
}
public void setPeriodo1(String periodo1) {
this.periodo1 = periodo1;
}
public String getPeriodo2() {
return periodo2;
}
public void setPeriodo2(String periodo2) {
this.periodo2 = periodo2;
}
public String getTipo() {
return tipo;
}
public void setTipo(String tipo) {
this.tipo = tipo;
}
}