Pessoal, queria usar duas entidades, porem não estou conseguindo receber os parametros na controller, na verdade não sei muito bem como construir o metodo, se alguem puder me ajudar, obrigado..
MODELS:
@Entity
public class Atleta {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
private String nome;
private String dataNascimento;
private String tipoDeficiencia;
private String modalidade;
@OneToMany
private List<AtletaDocumento> atletaDocumento;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getDataNascimento() {
return dataNascimento;
}
public void setDataNascimento(String dataNascimento) {
this.dataNascimento = dataNascimento;
}
public String getTipoDeficiencia() {
return tipoDeficiencia;
}
public void setTipoDeficiencia(String tipoDeficiencia) {
this.tipoDeficiencia = tipoDeficiencia;
}
public String getModalidade() {
return modalidade;
}
public void setModalidade(String modalidade) {
this.modalidade = modalidade;
}
}
@Entity
public class AtletaDocumento {
@ManyToOne
private Atleta atleta;
private String tipoDocumento;
@Id
private String numeroDocumento;
public Atleta getAtleta() {
return atleta;
}
public void setAtleta(Atleta atleta) {
this.atleta = atleta;
}
public String getTipoDocumento() {
return tipoDocumento;
}
public void setTipoDocumento(String tipoDocumento) {
this.tipoDocumento = tipoDocumento;
}
public String getNumeroDocumento() {
return numeroDocumento;
}
public void setNumeroDocumento(String numeroDocumento) {
this.numeroDocumento = numeroDocumento;
}
}
CONTROLLERS:
@Controller
public class AtletaController {
@Autowired
private AtletaRepository atletaRepository;
@Autowired
private AtletaDocumentoRepository adr;
@Autowired
private AtletaDAO atletaDao;
@RequestMapping("formAtleta") // chama o formulario atleta
public String form() {
return "formAtleta";
}
@RequestMapping("cadastrarAtleta")
public String salva(Atleta atleta, AtletaDocumento atletaDocumento) {
atletaDocumento.setAtleta(atleta);
adr.save(atletaDocumento);
atletaRepository.save(atleta);
return "redirect:formAtleta";
}
@RequestMapping("excluirAtleta")
public String excluir(Atleta atleta) {
atletaDao.delete(atleta.getId());
return "redirect:listarAtletas";
}
@RequestMapping("listarAtletas")
public ModelAndView listaAtletas() {
ModelAndView mv = new ModelAndView("listaAtletas");
Iterable<Atleta> atletas = atletaRepository.findAll();
mv.addObject("atleta", atletas);
return mv;
}
@RequestMapping("mostrarAtleta")
public String mostra(Integer id, Model model) {
model.addAttribute("atleta", atletaDao.findOne(id));
return "alteraAtleta";
}
@RequestMapping("alteraAtleta")
public String altera(Atleta atleta) {
atletaDao.alterar(atleta);
return "redirect:listarAtletas";
}
}
DAO:
@Repository
@Transactional
public class AtletaDAO {
@PersistenceContext
private EntityManager manager;
public Atleta findOne(Integer id) {
return manager.find(Atleta.class, id);
}
public void delete(Integer id) {
manager.remove(findOne(id));
}
public void alterar(Atleta atleta) {
manager.merge(atleta);
}
}
REPOSITORY:
public interface AtletaRepository extends JpaRepository<Atleta, String> {
Atleta findById(Integer id);
}