I am making a registration for the class Dining and DiningRestaurant. To register Food Food items you have to register for Meal first. The problem is the data is being registered, but since I want to register multiple meals at the same time with their respective items, the data is getting duplicated. Ex: Grape, Apple and Pear that should be of different meals they are being registered within the same meal, it generates the 3 meals only that all meals contain the same items.
JSP enter the code here
<div id="geral">
Tipo de Refeicao:
<select name="idtiporefeicao">
<%
List<TipoRefeicao> trefeicao = (List<TipoRefeicao>) request.getAttribute("trefeicao");
for (TipoRefeicao tiporefeicao : trefeicao) {
%>
<option value="<%=tiporefeicao.getIdTipoRefeicao()%>"><%=tiporefeicao.getTipoRefeicao()%></option><% }%>
</select>
Dia da Refeição:
<select id="diarefeicao" name="diarefeicao">
<option value="Domingo">Domingo</option>
<option value="Segunda-Feira">Segunda-Feira</option>
<option value="Terca-Feira">Terça-Feira</option>
<option value="Quarta-Feira">Quarta-Feira</option>
<option value="Quinta-Feira">Quinta-Feira</option>
<option value="Sexta-Feira">Sexta-Feira</option>
<option value="Sabado">Sábado</option>
</select>
<a href="#" data-action="adicionar" class="adicionar-refeicao" onclick="refeicao()" >+</a>
<a href="#" data-action="excluir" >-</a>
<fieldset>
<div id="multi">
<p>
Alimento: <select name="idalimento">
<%
List<Alimento> alimentos = (List<Alimento>) request.getAttribute("alimentos");
for (Alimento alimento : alimentos) {
%>
<option value="<%=alimento.getIdAlimento()%>" data-action="select"><%=alimento.getNomeAlimento()%></option><% }%>
</select>
<label>Quantidade: </label><input type="number" id="quantidadealimentorefeicao" name="quantidadealimentorefeicao" step="0.1" min="0.1" />
Medida: <select id="tipomedidaalimentorefeicao" name="tipomedidaalimentorefeicao">
<option value="Colher Arroz">Colher(es) de Arroz </option>
<option value="Colher Café">Colher(es) de Café</option>
<option value="Colher Cha">Colher(es) de Chá</option>
<option value="Colher Sobremesa">Colher(es) de Sobremesa</option>
</select>
<a href="#" data-action="add" >+</a>
<a href="#" data-action="delete" >-</a>
</p>
</div>
</fieldset>
Servlet
String diasRefeicao[] = request.getParameterValues("diarefeicao");
String idTipoRefeicao[] = request.getParameterValues("idtiporefeicao");
Cardapio cardapio = new Cardapio();
cardapio.setIdCardapio(idCardapio);
String alimentos[] = request.getParameterValues("idalimento");
String quantidades[] = request.getParameterValues("quantidadealimentorefeicao");
String medidaalimento[] = request.getParameterValues("tipomedidaalimentorefeicao");
Integer idRefeicao = null;
try {
for (int ii = 0; ii < idTipoRefeicao.length; ii++){
TipoRefeicao tipoRefeicao = new TipoRefeicao();
tipoRefeicao.setIdTipoRefeicao(Integer.parseInt(idTipoRefeicao[ii]));
Refeicao refeicao = new Refeicao();
refeicao.setDiaRefeicao(diasRefeicao[ii].toUpperCase().trim());
refeicao.setStatusRefeicao("A");
refeicao.setSincronizaRefeicao(1);
refeicao.setTipoRefeicao(tipoRefeicao);
refeicao.setCardapio(cardapio);
RefeicaoDAOImpl daorefeicao = new RefeicaoDAOImpl();
idRefeicao = daorefeicao.cadastrar(refeicao);
if (idRefeicao != null) {
refeicao.setIdRefeicao(idRefeicao);
for (int i = 0; i < alimentos.length; i++) {
AlimentoRefeicao alimentoRefeicao = new AlimentoRefeicao();
Alimento alimento = new Alimento();
alimento.setIdAlimento(Integer.parseInt(alimentos[i]));
alimentoRefeicao.setAlimento(alimento);
alimentoRefeicao.setRefeicao(refeicao);
alimentoRefeicao.setTipoMedidaAlimentoRefeicao(medidaalimento[i]);
alimentoRefeicao.setQuantidadeAlimentoRefeicao(Double.parseDouble(quantidades[i]));
alimentoRefeicao.setSincronizaAlimentoRefeicao(1);
try{
GenericDAO dao = new AlimentoRefeicaoDAOImpl();
if (dao.cadastrar(alimentoRefeicao)) {
mensagem = "Cadastrado com sucessso ";
} else {
mensagem = "Erro ao cadastrar itens da refeição";
}
} catch (Exception ex) {
System.out.println("Erro ao cadastrar itens da refeição" + ex.getMessage());
ex.printStackTrace();
}
}
'