| Autor |
Mensagem |
|
|
Boa tarde Galera !
Olha, a consulta pode estar certa (sem erros), mas uma consulta certa também pode retornar nenhum registro.
Sugiro que você copie a sua string SQL e execute diretamente no banco de dados e verifique se retorna registros.
De qualquer forma você pode evitar o erro verificando se existem registros na sua lista, se não existir da uma mensagem para o usuário avisando que nao tem nada para mostrar no relatório, se existirem registros daí você chama o relatorio...
Só uma idéia, não sei se cabe ai no seu problema.
[]s
|
 |
|
|
Boa tarde galera !
Você testou se a sua query esta retornando algum registro ?
Veja bem... se a sua query não retornar nenhum registro não vai entrar no seu "for", então nada sera adicionado a sua "listaTotal", e ela estará como nulo, gerando o NullPointerException.
[]s
|
 |
|
|
Boa tarde galera !
Mande o codigo completo do seu DAO.
[]s
|
 |
|
|
Bom dia Galera !
Melhor você mandar o resto do código da sua classe RBeanCollectionDataSource.
Mas eu chutaria que sua consulta não esta retornando nada e sua lista "listaTotal" esta retornando nulo para o relatório...
[]s
|
 |
|
|
Boa tarde galera !
Sobre a facilidade de alteração, não sei como é a burocracia na empresa que você trabalha, mas aqui, uma alteração de procedure seria tão complicada quanto uma alteração na app java.
Ou seja, não é porque esta no banco que você pode acessar diretamente a produção e fazer as alterações que quiser.
Se você consegue fazer isso numa procedure, porque não consegue fazer na aplicação ?
Claro que aí também vai depender de que tipo de sistema você esta falando... se trata-se de uma aplicação num server, acredito que dá na mesma subir uma nova versão da app ou fazer uma alteração numa procedure.
Eu particularmente gosto de manter minha logica em classes de negocio.
Sobre a performance, acho que tudo tem que ser muito bem analisado, ja tive caso real em que uma procedure no oracle demorava 72 horas para terminar se processamento, mudando para java com uso de thread´s o tempo caiu para menos de 10 horas...
Bom, pode ser que a forma como estava desenvolvido em PL/SQL estava muito ruim, sei lá.
Mas já tive outra situação em que era necessário processar aproximadamente 20 milhoes de registros, isso foi colocado em um cursor do Oracle e não rolou... a solução que aplicamos foi quebrar em varios processos java cada um tratando aproximadamente 500 mil registros... rolou legal.
[]s
|
 |
|
|
Boa tarde Galera,
Bom... como você adiciona o outro colega ja respondeu, acho seria +- assim:
Voce tem a classe Funcionario:
E tem também a classe Empresa:
Depois uma classe para testar o programa:
Voltando ao exercício, sobre esta pergunta:
"Você deve inserir o Funcionario em uma posição da array que esteja livre. Existem várias maneiras para
você fazer isso: guardar um contador para indicar qual a próxima posição vazia ou procurar por uma posição
vazia toda vez. O que seria mais interessante?"
Eu optei por procurar uma posição vaga a cada inserção de um novo funcionário, não tenho uma explicação muito boa para isso... mas a outra forma tb é fácil de fazer, pq não tenta implementá-la.
Bom... não sei se é isso que esperava, esperto ter ajudado.
[]s
|
 |
|
|
Bom dia Galera !
Mas o que você nao esta entendendo ?
Como definir em qual posição inserir ?
[]s
|
 |
|
|
Boa tarde Galera...
É este o exercício:
1) Volte ao nosso sistema de Funcionario e crie uma classe Empresa dentro do mesmo arquivo .java. A
Empresa tem um nome, cnpj e uma referência a uma array de Funcionario, além de outros atributos que
você julgar necessário.
class Empresa {
// outros atributos
Funcionario[] empregados;
String cnpj;
}
[]s
|
 |
|
|
Bom dia Galera...
Não encontrei esse exercicio 5.6 na pagina 51 da apostila que você mandou...
[]s
|
 |
|
|
Bom dia Galera...
Qual sua dúvida sobre o exercicio da Caelum ?
[]s
|
 |
|
|
Bom dia Galera !
Para que servem aquelas linhas que você perguntou, ja responderam (como sempre o Vini com respostas mais do que completas !)
Agora aproveitando... o "Assunto" dos post´s serve para dar uma idéia geral do que se traga a pergunta... experimente usar na proxima.
[]s
|
 |
|
|
Boa noite galera !
Bom parabéns pela sua esperteza.
Aproveitando, acho que não precisa ser tão esperto para entender que o intuito do forum é a troca de informações e a ajuda mutua, passando sempre pela boa educação...
[]s
|
 |
|
|
Boa noite Galera,
saoj, utlizar o id para desempatar não é o que você esta fazendo aqui:
return s1.id - s2.id;
?
Eu entendi o que você quis dizer, e concordo, só não concordo em afirmar que esta claro no enunciado que o Id é o critério de desempate...
[]s
|
 |
|
|
Boa noite galera !
Concordo com o Vini, fazendo isso:
Voce esta considerando que o id é o critério de desempate para o caso de idades iguais, e isso não esta explicito no enunciado, da mesma forma que outra regra qq poderia ser considerada, por exemplo a de que o primeiro objeto a ser inserido deve vir primeiro na ordenação.
[]s
|
 |
|
|
Boa noite galera,
saoj, desculpe minha ignorancia...
Mas pode explicar isso: s1 > s2 AND s2 > s1
E porque ou seu código não cai na mesma situação que o meu...
Lembrando que, concordo que, para mim, utilizar o equals ao inves de repetir a comparação dos id´s é o mais correto
[]s
|
 |
|
|