Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Usar o ui repeat.

Galera primeiramente me desculpe, eu abri um tópico igual a esse, mais errei na expressão ao escrever oque eu queria, vamos por parte, quero deixar claro esse tópico kkk, fiz um cadastro de agendamento.

Classe agendamento.

@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;

    public Long getCodigo() {
        return codigo;
    }

    public void setCodigo(Long codigo) {
        this.codigo = codigo;
    }

    public Carro getCarro() {
        return carro;
    }

    public void setCarro(Carro carro) {
        this.carro = carro;
    }

    public List<Servico> getServicos() {
        return servicos;
    }

    public void setServicos(List<Servico> servicos) {
        this.servicos = servicos;
    }

    public Date getDataComeco() {
        return dataComeco;
    }

    public void setDataComeco(Date dataComeco) {
        this.dataComeco = dataComeco;
    }

    public Date getDataFim() {
        return dataFim;
    }

    public void setDataFim(Date dataFim) {
        this.dataFim = dataFim;
    }

    public String getObservacao() {
        return observacao;
    }

    public void setObservacao(String observacao) {
        this.observacao = observacao;
    }

    public Boolean getStatus() {
        return status;
    }

    public void setStatus(Boolean status) {
        this.status = status;
    }
}

Depois fiz uma tabela de tipo itens do servico do agendamento.

@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;
    }


}

ta no meu bean tem os metodos que preciso para salvar, irei postar os necessarios para poderem me ajudar.

@Named(value = "agendaBean")
@ViewScoped
@SuppressWarnings("serial")
public class AgendaBean implements Serializable {

    @Inject
    private Agendamento agendamento;
    @Inject
    private AgandamentoDao agendamentoDao;
    private ScheduleModel schedule;
    private List<Agendamento> lista;
    @Inject
    private Agendamento_servico agendamentoServico;
    @Inject
    private CarroDao carroDao;
    @Inject
    private Servico servico;
    @Inject
    private ServicoDao servicoDao;
    @Inject
    private Carro carro;
    @Inject
    private AgendamentoServicoDao agendamentoServicoDao;
    private List<Agendamento_servico> agendamentoServicos = new ArrayList<Agendamento_servico>();

metodo que adiciono o meu serviço.

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

Está adicionando e salvando no meu banco de dados tudo perfeitamente, tá agora no meu html eu queria mostrar no componente schedule que também já consegui usar essa lista de serviço, porque as outras coisas já estão mostrando só queria mostrar essa lista, e como fazer para mostrar?

    <p:dialog responsive="true" widgetVar="agendar1" appendTo="@(body)"
            modal="true" closable="true" resizable="false" draggable="false"
            header="Detalhes">
            <h:form id="formularioAgendamento1">
                <p:panelGrid columns="2" columnClasses="ui-grid-col-4,ui-grid-col-8"
                    layout="grid" styleClass="ui-panelgrid-blank">
                    <p:outputLabel value="Carro: " />
                    <p:inputText value="#{agendaBean.agendamento.carro.descricao}"
                        readonly="true" />
                    <p:outputLabel value="Cliente: " />
                    <p:inputText value="#{agendaBean.agendamento.carro.cliente.nome}"
                        readonly="true" />
                    <p:outputLabel value="Data inicial: " />
                    <p:inputText value="#{agendaBean.agendamento.dataComeco}"
                        readonly="true">
                        <f:convertDateTime pattern="dd/MM/yyyy" />
                    </p:inputText>
                    <p:outputLabel value="Data final: " />
                    <p:inputText value="#{agendaBean.agendamento.dataFim}"
                        readonly="true">
                        <f:convertDateTime pattern="dd/MM/yyyy" />
                    </p:inputText>
                    <p:outputLabel value="Observação: " />
                    <p:inputText value="#{agendaBean.agendamento.observacao}"
                        readonly="true" />
                </p:panelGrid>

//// aqui foi apenas um teste que não ocorreu bem, não mostra nada,
    <p:dataTable value="#{agendaBean.listaAgendamentos}" var="agenda"
                        emptyMessage="">
                        <p:column headerText="Serviço">
                            <ui:repeat var="servico" value="#{agenda.servico}">
                                #{servico.tipoServico}
                            </ui:repeat>
                        </p:column>
                    </p:dataTable>
////////////////////////////////////
            </h:form>
        </p:dialog>

Quando faço assim aparece o serviço geral que já foi cadastro kkk de cada carro, quero mostrar só o registro do carro que eu clicar

1 resposta
solução!

Essa dúvida é a mesma de JPQL?

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software