Autor |
Mensagem |
|
Bom dia pessoal,
Estou com algumas duvidas em relação à performance do Neo ao carregar as combos.
Primeira duvida: O Neo utiliza algum cache pra agilizar o carregamento das combos?
Muitas combos estáticas eu já implementei com enum, e o desempenho melhorou bastante mas ainda tem algumas que preciso carregar do banco.
Aqui onde trabalho a equipe tem o costume de usar Stored Procedures para agilizar o carregamento das combos. Tava pensando em fazer as SPs no hibernate e executar no método findForCombo dos DAOs.
Segunda duvida: Vcs acham que teria algum ganho em perfomance carregando as combos com SPs ao invés de usar padrão do Neo?
Valew!
|
 |
|
Por exemplo, tentei fazer o enum GrauIntrucao
Code:
public enum GrauIntrucao {
001 ("1 GRAU INCOMPLETO"),
002 ("1 GRAU COMPLETO"),
003 ("2 GRAU INCOMPLETO");
private String descricao;
GrauIntrucao(String descricao){
this.descricao = descricao;
}
@Override
public String toString() {
return descricao;
}
public String getName(){
return name();
}
}
No meu banco, as chaves são os valores 001, 002, 003. Neste caso, o java não aceita esses valores como um identificador. Também não consigo colocar a descrição como identificador, pq elas iniciam com numero. Sinuca de bico =)
É a primeira vez que estou usando enums tbm. Pode ser que tenha uma outra forma de contornar este problema com enums, mas eu não sei.
Grato.
|
 |
|
Pedro, tentei fazer com enums mas não consegui, pq algumas chaves tem o valor numerico, e java não aceita identificador numerico como nome das variáveis. Tbm tentei trocar de posição com a descrição mas tbm não deu certo pq algumas descrições iniciam com valores numericos.
Tem alguma outra forma de criar essas combos constantes?
|
 |
|
Ficou satisfeito em contribuir para o framework, que ultimamente tenho usado como referência em todos os meus projetos e estou indicando para muitos amigos.
Parabéns pelo trabalho e sucesso.
|
 |
|
No segundo código eu adicionei uma chamada à função ${n:descriptionToString(null)} após a tag javascript. Se tirar essa chamada, a página não funciona no websphere.
Parece que ele precisa armazenar a função em algum cache, antes de executar as funções aninhadas, do contrário, ele dispara uma excessão dizendo que não pode localizar a função.
|
 |
|
Eu encontrei alguns bugs do websphere referente a chamadas de funções em páginas jsp. Por exemplo, algumas funções jstl não funcionavam em versões anteriores. Encontrei vários hotfixes para esses bugs.
Na página tabelaResultadosTag existe o seguinte código
Code:
<script language="javascript">
imprimirSelecionar(new Array(${n:hierarchy(TtabelaResultados.valueType)}), "${n:escape(n:valueToString(n:reevaluate(TtabelaResultados.name, pageContext)))}", "${n:escape(n:descriptionToString(n:reevaluate(TtabelaResultados.name, pageContext)))}");
</script>
O websphere não consegue executar essa sequência de chamadas de funções e dispara uma exceção dizendo que não encontrou a função n:descriptionToString(). Quando eu coloco essa função pra executar antes da chamada, a sequencia funciona
Code:
<script language="javascript">${n:descriptionToString(null)}
imprimirSelecionar(new Array(${n:hierarchy(TtabelaResultados.valueType)}), "${n:escape(n:valueToString(n:reevaluate(TtabelaResultados.name, pageContext)))}", "${n:escape(n:descriptionToString(n:reevaluate(TtabelaResultados.name, pageContext)))}");
</script>
|
 |
|
Bom dia pessoal,
Tem como eu configurar o neo (ou o spring, não sei) pra carregar o bean usando injeção de dependencia, antes de fazer o bind dos campos?
É pq estou trabalhando num projeto que não utiliza banco de dados, os dados são persistidos via socket. Estou tentando fazer uma integração do nosso framework com o NEO, porém, estou tendo dificuldades ao converter os dados recebidos.
O que acontece é que o bean que vem na action não é carregado usando injeção de dependencia, assim, vários campos estão nulos. Quando eu tento setar os atributos, usando o beanUtils, dá excessão. Sei que o método Neo.getObject() carrega o bean, então pensei em utilizar esse método antes do command chegar na action.
Alguma sugestão?
|
 |
|
Elas são estáticas sim, meu problema é que eu tento automatizar tudo kkkkkk.
Eu configurei o método getDescricao pra carregar o bean no banco se o id não for null. Assim, quando o relatório chamar a descricao, o bean é recarregado e a descricao é retornada.
Valew pela dica.
|
 |
|
Pessoal, boa tarde,
Minha aplicação possui uma classe PessoaFisica, que não é uma entidade, mas está anotado com @Bean. Nesta classe possuo outras entidades, como Uf e Sexo.
Ao dar o submit no formulário, o objeto PessoaFisica está vindo só com os id's das entidades. Gostaria que viesse também o descriptionProperty da combo, só pra gerar o relatório, tem jeito?
É pq são muitas entidades, e pra ficar dando load em todas, fica inviável. Grato.
|
 |
|
Sim. Pode ser pq eu estou usando o WebSphere, ele é cheio de bugs. Tive que mudar a jsp TabelaResultadosTag, pq o websphere não aceita duas chamadas consecutivas de funções em uma pagina jsp. Só pepino.
Mas com aquele código eu resolvi o problema. Valew!
|
 |
|
Não dá erro, só não acontece nada. Parece que o neo executa uma query sem filtro, listando todos os objetos denovo, como se fosse a primeira vez que entra na tela.
|
 |
|
Bom dia pessoal,
Tentei migrar meus aplicativos para a versão 3.4, porém, meus filtros pararam de funcionar.
Dei uma debugada no código e receio que o problema esteja neste trecho abaixo, da classe CrudController.
Code:
protected void setListagemInfo(WebRequestContext request, FILTRO filtro) throws Exception {
if (!listagemVaziaPrimeiraVez() || filtro.isNotFirstTime()) {
if(request.getParameter("resetCurrentPage") != null) {
String orderBy = filtro.getOrderBy();
boolean asc = filtro.isAsc();
filtro = (FILTRO) filtro.getClass().newInstance();
filtro.setOrderBy(orderBy);
filtro.setAsc(asc);
}
Neste momento, o sistema está criando um novo filtro, apagando o estado do antigo filtro e preservando apenas os atributos OrderBy e Asc.
Fiz as seguintes alterações e funcionou
Code:
if(request.getParameter("resetCurrentPage") != null) {
filtro.setCurrentPage(0);
filtro.setNotFirstTime(true);
filtro.setNumberOfPages(1);
filtro.setNumberOfResults(0);
}
Posso manter essas alterções ou é melhor fazer de outra forma?
Grato!
|
 |
|
Boa tarde,
Pessoal, sei que esta é uma duvida sobre o hibernate, mas gostaria de pedir um help a vcs.
Tenho um bean PessoaFisica e um PessoaJuridica que extendem o bean Contribuinte utilizando herança do tipo JOINED do hibernate. Tenho um bean Serviço que possui um Contribuinte, que pode ser PessoaFisica ou juridica.
Quando tento excluir uma PessoaFisica que está em um Serviço, o sistema exibe uma mensagem dizendo que não pode concluir a operação, pq o relacionamento entre Contribuinte e Serviço é do tipo restrict.
Até aí tá certo, o problema é que ele removeu o registro da tabela PessoaFisica e não removeu o da tabela Contribuinte. Daí, quando chamo a listagem de PessoaFisica, o registro não aparece mais.
Gostaria de saber se existe alguma forma de forçar o sistema a não excluir o registro?
Valeu!
|
 |
|
Bruno,
Eu consegui acessar os elementos da tabela através da notação form[i], onde i é o numero do elemento. Tive que contar os elementos do form, o código não ficou bom mas funcionou.
Vc conseguiu obter o elemento com a seguinte notação:
var element = document.forms[0]['listaconfigdeparaitem[' + campo + '].numero'];
Procurei no código que vc passou mas não achei referência para este atributo 'listaconfigdeparaitem' e não consegui entender como funciona.
Teria como vc me dar uma dica de como pegar um elemento da tabela?
Valew!
|
 |
|
Essa galera do Neo é muito gente boa.
Bruno e Pedro, valew mesmo. Consegui fazer a atualização do detalhe usando ajax e ficou fera, só que deu um trabalhooooo....
No meu caso, tenho vários inputs pra atualizar dentro do detalhe. Fiz a varredura dos campos com FOR utilizando form[i]. Porém, tive que fazer uma gambiarra pra dar certo. Tem alguma forma de acessar esses inputs pelo id? Eu procurei no código fonte mas não encontrei onde vcs colocam o id dos campos do detalhe. Tipo, pra acessar o property VALOR na terceira linha.
Mais uma vez muito obrigado. Vcs estão de parabéns pelo framework e pelo suporte!
|
 |
|