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)
[code]
import …
@WebService()
public class OperacoesOnibus {
@PersistenceContext(unitName=“ProjetoOnibusServicePU”)
EntityManager entityManager;
/**
* Operação de serviço web
*/
@WebMethod(operationName = “buscaListaOnibusEndereco”)
public List buscaListaOnibusEndereco(@WebParam(name = “origem”)
String origem, @WebParam(name = “destino”)
String destino) {
List listOnibus = new ArrayList();
List onibus = (List)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;
}
}[/code]
Onibus.java(classe entidade )
[code]@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 onibusHasLogradouroList;
@JoinColumn(name = “cidade_id_cidade”, referencedColumnName = “id_cidade”)
@ManyToOne(optional = false)
private Cidade cidadeIdCidade;
@OneToMany(cascade = CascadeType.ALL, mappedBy = “onibusIdOnibus”)
private List 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;
}
…[/code]