Problema Consulta Dados Banco Via WebService

0 respostas
L
Boa tarde Galera. estou começando com Hibernate e ainda tenho muitas duvidas ,seguinte: estou fazendo um projeto J2me e webservices e preciso recuperar uma String do banco de dados de uma tabela relacionada com outra.Tabela 1: Onibus(idOnibus,nomeOnibus) , Tabela2: Logradouro(idLogradouro,ruaLogradouro).Ous eja preciso de determinado Onibus q faça parte de dois endereços(Origem e Destino); Fazendo os testes pelo Browser e digitando o conteudo na consulta consigo os retornos desejados, porem quando quero receber pelo cliente de celular nao consigo saber qual parametro passar na query = Select .. . .. da classe entidade Onibus(e estou fazendo a consulta n mão, tem algum jeito de recuperar dados entre duas tabelas de alguma forma mais simples com hibernate ??). Vou mandar as classes q envolvem o problema...agradeço mto a ajuda!! Principal.java(cliente J2me)
........
else if (displayable == fmConsultaOnibus) {
            if (command == cmConsultarOnibus) {
                //inicializa a lista de resultados de onibus
                getLtOnibus();
                //limpa a lista
                ltOnibus.deleteAll();
                //recupera oa dados do servidor e armazena em listOnibus
                String [] listOnibus = null;
                OperacoesOnibusService_Stub op = new OperacoesOnibusService_Stub();
                try {
                    listOnibus = op.buscaListaOnibusEndereco(tfOrigemOnibus.getString(),tfDestinoOnibus.getString());
                } catch (RemoteException ex) {
                    ex.printStackTrace();
                }
                   //cria variavel que armazena listOnibus e troca # por espaço em branco
                  String result= "\n";
                  for(int i=0; i < listOnibus.length; i++)
                  {
                      result += listOnibus[i].replace('#',' ')+"\n";
                      System.out.println(listOnibus[i]);
                      ltOnibus.append(result, null);
                  }
                  switchDisplayable(null, getLtOnibus());
..........
OperacoesOnibus.java(Web Service)
import ...

@WebService()
public class OperacoesOnibus {
    @PersistenceContext(unitName="ProjetoOnibusServicePU")
    EntityManager entityManager;
    /**
     * Operação de serviço web
     */
@WebMethod(operationName = "buscaListaOnibusEndereco")
    public List<String> buscaListaOnibusEndereco(@WebParam(name = "origem")
    String origem, @WebParam(name = "destino")
    String destino) {
        List<String> listOnibus = new ArrayList<String>();
        List<Onibus> onibus = (List<Onibus>)entityManager.createNamedQuery("Onibus.findEndereco").getResultList();
        for(int i = 0; i < onibus.size(); i++ ){
            listOnibus.add(onibus.get(i).getNomeOnibus()+"#"+onibus.get(i).getNumeroOnibus());
        }
        return listOnibus;
    }

}

Onibus.java(classe entidade )

@Entity
@Table(name = "onibus")
@NamedQueries({@NamedQuery(name = "Onibus.findAll", query = "SELECT o FROM Onibus o"), @NamedQuery(name = "Onibus.findByIdOnibus", query = "SELECT o FROM Onibus o WHERE o.idOnibus = :idOnibus"), @NamedQuery(name = "Onibus.findByNomeOnibus", query = "SELECT o FROM Onibus o WHERE o.nomeOnibus = :nomeOnibus"), @NamedQuery(name = "Onibus.findByNumeroOnibus", query = "SELECT o FROM Onibus o WHERE o.numeroOnibus = :numeroOnibus"),
@NamedQuery(name = "Onibus.findEndereco", query = "SELECT o FROM Onibus as o, Logradouro as l_origem, Logradouro as l_destino, OnibusHasLogradouro as ohl WHERE (l_origem.ruaLougradouro LIKE  '%" +???????????+ "%' AND l_destino.ruaLougradouro LIKE  '%"+ ?????????????? +)"%' AND o.idOnibus = ohl.onibusIdOnibus AND l_destino.idLougradouro = ohl.logradouroIdLougradouro)")})
public class Onibus implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "id_onibus")
    private Integer idOnibus;
    @Basic(optional = false)
    @Column(name = "nome_onibus")
    private String nomeOnibus;
    @Basic(optional = false)
    @Column(name = "numero_onibus")
    private int numeroOnibus;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "onibusIdOnibus")
    private List<OnibusHasLogradouro> onibusHasLogradouroList;
    @JoinColumn(name = "cidade_id_cidade", referencedColumnName = "id_cidade")
    @ManyToOne(optional = false)
    private Cidade cidadeIdCidade;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "onibusIdOnibus")
    private List<OnibusHasHorario> onibusHasHorarioList;

    public Onibus() {
    }

    public Onibus(Integer idOnibus) {
        this.idOnibus = idOnibus;
    }

    public Onibus(Integer idOnibus, String nomeOnibus, int numeroOnibus) {
        this.idOnibus = idOnibus;
        this.nomeOnibus = nomeOnibus;
        this.numeroOnibus = numeroOnibus;
    }

.................
Criado 20 de março de 2010
Respostas 0
Participantes 1