10
respostas

Duvida na hora de gravar...

Opa boa tarde, sempre gravei uma lista e agora observando código a código tive uma duvida, é necessario eu fazer isso? Eu acho que é necessario para mostrar a lista de produtos né? Primeiramente vo postar o código da agenda que eu realizei...

@Entity
@SuppressWarnings("serial")
public class Agendamento implements Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long codigo;
    @ManyToOne
    @JoinColumn(name = "carro_codigo")
    private Carro carro = new Carro();
    @ManyToMany(fetch = FetchType.LAZY)
    @JoinColumn(name = "servico_codigo")
    private List<Servico> servicos = new ArrayList<Servico>();
    private Date dataComeco;
    private Date dataFim;
    private String observacao;
    private Boolean status;

Minha duvida gira em torno desse atributo aqui...

@ManyToMany(fetch = FetchType.LAZY)
@JoinColumn(name = "servico_codigo")
private List<Servico> servicos = new ArrayList<Servico>();

do jeito que eu gravo no banco eu nunca ultilizo esse codigo, e está errado? eu sempre faço assim, como a relação é manytomany irá criar uma tabela associativa, e nessa tabela eu faço o seguinte.

@SuppressWarnings("serial")
@Entity
public class Agendamento_servico implements Serializable{

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long codigo;
    @ManyToOne
    @JoinColumn(name = "Agendamento_codigo")
    private Agendamento agendamento = new Agendamento();
    @ManyToOne
    @JoinColumn(name = "servicos_codigo")
    private Servico servico = new Servico();
    private Double precoTotal;

    public Long getCodigo() {
        return codigo;
    }
    public void setCodigo(Long codigo) {
        this.codigo = codigo;
    }
    public Agendamento getAgendamento() {
        return agendamento;
    }
    public void setAgendamento(Agendamento agendamento) {
        this.agendamento = agendamento;
    }
    public Servico getServico() {
        return servico;
    }
    public void setServico(Servico servico) {
        this.servico = servico;
    }
    public Double getPrecoTotal() {
        return precoTotal;
    }
    public void setPrecoTotal(Double precoTotal) {
        this.precoTotal = precoTotal;
    }


}

eu deixo ela assim, e depois no meu bean. Crio um atributo da Classe associativa.

private List<Agendamento_servico> agendamentoServicos = new ArrayList<Agendamento_servico>();

e nessa lista eu realizo os add do meu serviço no meu html.

public void adicionarServico() {
        agendamentoServicos.add(agendamentoServico);
        System.out.println("Tamanho da lista: " + agendamentoServicos.size());
        precoTotal();
        agendamentoServico = new Agendamento_servico();
        precoTotal();
    }

Aqui nesse metodo todo serviço que eu buscar na minha html irá adicionar na variavel. Depois na hora de salvar faço o for para iterar a lista e salvar os objtos que estão na lista.

@Transacional
    public void salvar() {
        if (agendamento.getCodigo() == null) {
            agendamentoDao.salvar(agendamento);
            Agendamento agendaCodigo = agendamentoDao
                    .buscarPorCodigo(agendamento.getCodigo());
            for (Agendamento_servico as : agendamentoServicos) {
                as.setAgendamento(agendaCodigo);
                agendamentoServicos = new ArrayList<Agendamento_servico>();
                agendamentoServicoDao.salvar(as);
            }
            Mensagem.mensagemInfo("Agendamento salvo com sucesso");
        }
    }

Sim salva perfeitamente, só que agora e a parte da minha duvida la de cima, que é

@ManyToMany(fetch = FetchType.LAZY)
@JoinColumn(name = "servico_codigo")
private List<Servico> servicos = new ArrayList<Servico>();

Não irei utilizar pra nada? Eu que estou errando?

10 respostas

acho que é só apagar :).

Correto Alberto mais a minha duvida é se eu estou fazendo certo desse jeito que faço.

está sim.. os dois jeitos são corretos.

Ok, obrigado, achei que estava tudo errado aqui, Alberto sua opnião, andei pesquisando sobre geração de nosta fiscal para java web, vi sobre NFE correto? Essa é boa? Esse assunto é muito vago para mim ainda.

nunca trabalhei, mas a nfe é o caminho natural para geração de notas atualmente.

Você nunca usou? Então qual que você usa? ou você não usa nota fiscal?

eu nunca fiz um projet que use nfe.

Mais não é obrigatório em um sistema fazer uma geração de nota? então pode deixar sem?

eu gero notas pelo sistemas de nfe do estado de são paulo.. só estou dizendo que nunca fiz um sistema que integre direto com a nfe.

Ah foi mal eu so leigo nesse assunto de nota fiscal, poderia me passar algo sobre nfe que você usa? algo que possa ler e entender melhor, como usar essas coisas? Tem algo assim?