alguem pode me ajudar minha aplicação que eu peguei exemplo da javamagazine ta dando erro na de fazer um filtro pela paginação:
quando consulto 23 ele pula para o 1 ou então para 34 isso acontece contatemente
como faco para arrrumar esse erro
eu tou usando ide netbeans
jpa + ajax + hibernate + java script
se alguem souber corrigir me enviar o email por favor vou a classe de paginação e java script
package br.com.javamagazine.ca;
//import java.sql.Date;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.criterion.Example;
import org.hibernate.criterion.MatchMode;
import org.hibernate.criterion.Projections;
public final class PacienteRepository {
//private static final Date TODAY = new Date(System.currentTimeMillis());
@SuppressWarnings("unchecked")
public static List<Paciente> open() {
Session session = TransacaoAplicacao.getSessionFactory().openSession();
Criteria criterio = session.createCriteria(Paciente.class);
List<Paciente> lista = criterio.list();
session.close();
return lista;
}
@SuppressWarnings("unchecked")
protected static Paciente get(Paciente paciente) throws ControleAcessoPersistenceException {
Session session = TransacaoAplicacao.getSessionFactory().openSession();
session.beginTransaction();
Criteria crit = session.createCriteria(Paciente.class);
crit.add(Example.create(paciente).excludeZeroes().ignoreCase().enableLike(MatchMode.EXACT));
List l = crit.list();
if(l.size() == 0) {
throw new ControleAcessoPersistenceException("Paciente nao existe!");
}
paciente = (Paciente)crit.list().get(0);
session.close();
return paciente;
}
protected static void open(Paciente paciente) {
Session session = TransacaoAplicacao.getSessionFactory().openSession();
Transaction tx = session.beginTransaction();
if(session.contains(paciente)){
session.get(paciente.getClass(), paciente.getId());
} else {
session.load(paciente, paciente.getId());
}
tx.commit();
session.close();
}
package br.com.javamagazine.ca;
import java.util.List;
public final class ControleAcessoFacadePaciente {
public static int countPaciente(Paciente filtro) {
return PacienteRepository.countPaciente(filtro);
}
public static List<Paciente> pesquisar(Paciente filtro, int start, int limit) {
return PacienteRepository.carregarPaciente(filtro, start, limit);
}
public static List<Paciente> pesquisar(Paciente paciente) {
return PacienteRepository.pesquisar(paciente);
}
public static Paciente cadastrar(Paciente paciente) {
return PacienteRepository.cadastrar(paciente);
}
public static Paciente salvar(Paciente paciente) {
return PacienteRepository.save(paciente);
}
public static boolean excluir(Paciente paciente) {
return PacienteRepository.delete(paciente);
}
public static Paciente abrir(Paciente paciente) {
PacienteRepository.open(paciente);
return paciente;
}
}
protected static Paciente save(Paciente paciente) {
Session session = TransacaoAplicacao.getSessionFactory().openSession();
Transaction tx = session.beginTransaction();
session.update(paciente.getClass().getName(), paciente);
tx.commit();
session.close();
open(paciente);
return paciente;
}
protected static boolean delete(Paciente paciente) {
Session session = TransacaoAplicacao.getSessionFactory().openSession();
Transaction tx = session.beginTransaction();
if(session.contains(paciente)){
session.get(paciente.getClass(), paciente.getId());
} else {
session.load(paciente, paciente.getId());
}
session.delete(paciente.getClass().getName(), paciente);
tx.commit();
session.close();
return true;
}
protected static Paciente cadastrar(Paciente paciente) {
System.out.println(paciente);
Session session = TransacaoAplicacao.getSessionFactory().openSession();
Transaction tx = session.beginTransaction();
session.persist(paciente);
tx.commit();
session.close();
open(paciente);
return paciente;
}
protected static int countPaciente(Paciente filtro) {
Session session = TransacaoAplicacao.getSessionFactory().openSession();
session.beginTransaction();
Criteria criterio = session.createCriteria(Paciente.class);
criterio.setProjection(Projections.rowCount())
.add(Example.create(filtro).excludeZeroes().ignoreCase().enableLike(MatchMode.ANYWHERE));
int total = (Integer)criterio.list().get(0);
session.close();
return total;
}
@SuppressWarnings("unchecked")
protected static List<Paciente> carregarPaciente(Paciente filtro, int start, int limit) {
Session session = TransacaoAplicacao.getSessionFactory().openSession();
session.beginTransaction();
List lista = session.createCriteria(Paciente.class)
.setFirstResult(start).setMaxResults(limit)
.add(Example.create(filtro).excludeZeroes().ignoreCase().enableLike(MatchMode.ANYWHERE))
.list();
session.close();
return lista;
}
@SuppressWarnings("unchecked")
public static List<Paciente> pesquisar(Paciente filtro) {
Session session = TransacaoAplicacao.getSessionFactory().openSession();
session.beginTransaction();
List<Paciente> lista = session.createCriteria(Paciente.class)
.add(Example.create(filtro).excludeZeroes().ignoreCase().enableLike(MatchMode.ANYWHERE))
.list();
session.close();
return lista;
}
}
JAVAMAGAZINE.Paciente = function() {
var grid;
var hasGrid = false;
this.CACHE = false;
var pesquisar = function() {
JAVAMAGAZINE.Paciente.CACHE = false;
var paciente = {id:0,prontuario:’’,nome:’’,acompanhante:’’,datainscricao:’’, datanascimento:’’,endereco:’’,bairro:’’,fone1:’’,fone2:’’,celular:’’,observacoes:’’,assistsocial:’’,audiometria:’’,otorrino:’’,psicologo:’’,premolde:’’,bera:’’,selecao:’’,neuro:’’,entrega:’’,apmarcacod:’’,adaptacaoa:’’,adaptacaob:’’,terapiac:’’,terapiad:’’};
dwr.util.getValues(paciente);
JAVAMAGAZINE.excludeNone(paciente);
var json = new JAVAMAGAZINE.Paciente.json();
json.setObj(paciente);
var datamapping = [
{name: ‘id’, mapping: ‘id’ },
{name: ‘doc_prontuario’, mapping: ‘prontuario’},
{name: ‘doc_nome’, mapping: ‘nome’},
{name: ‘doc_acompanhante’, mapping: ‘acompanhante’},
{name: ‘doc_datainscricao’, mapping: ‘datainscricao’},
{name: ‘doc_datanascimento’, mapping: ‘datanascimento’},
{name: ‘doc_endereco’, mapping: ‘endereco’},
{name: ‘doc_bairro’, mapping: ‘bairro’},
{name: ‘doc_fone1’, mapping: ‘fone1’},
{name: ‘doc_fone2’, mapping: ‘fone2’},
{name: ‘doc_celular’, mapping: ‘celular’},
{name: ‘doc_observacoes’, mapping: ‘observacoes’},
{name: ‘doc_assistsocial’, mapping: ‘assistsocial’},
{name: ‘doc_audiometria’, mapping: ‘audiometria’},
{name: ‘doc_otorrino’, mapping: ‘otorrino’},
{name: ‘doc_psicologo’, mapping: ‘psicologo’},
{name: ‘doc_premolde’, mapping: ‘premolde’},
{name: ‘doc_bera’, mapping: ‘bera’},
{name: ‘doc_selecao’, mapping: ‘selecao’},
{name: ‘doc_neuro’, mapping: ‘neuro’},
{name: ‘doc_entrega’, mapping: ‘entrega’},
{name: ‘doc_apmarcacod’, mapping: ‘apmarcacod’},
{name: ‘doc_adaptacaoa’, mapping: ‘adaptacaoa’},
{name: ‘doc_adaptacaob’, mapping: ‘adaptacaob’},
{name: ‘doc_terapiac’, mapping: ‘terapiac’},
{name: ‘doc_terapiad’, mapping: ‘terapiad’}
];
var columns = [
{header:"id",width:20, dataIndex:'id'},
{id:'Desc',header:"prontuario",dataIndex:'doc_prontuario',width:20,'sortable':true},
{id:'Nome',header:"nome",dataIndex:'doc_nome',width:250,'sortable':true},
{id:'Nome',header:"acompanhante",dataIndex:'doc_acompanhante',width:250,'sortable':true},
{id:'Desc',header:"datainscricao",dataIndex:'doc_datainscricao',width:50,'sortable':true},
{id:'Desc',header:"datanascimento",dataIndex:'doc_datanascimento',width:50,'sortable':true},
{id:'Desc',header:"endereco",dataIndex:'doc_endereco',width:250,'sortable':true},
{id:'Desc',header:"bairro",dataIndex:'doc_bairro',width:250,'sortable':true},
{id:'Desc',header:"fone1",dataIndex:'doc_fone1',width:250,'sortable':true},
{id:'Desc',header:"fone2",dataIndex:'doc_fone2',width:250,'sortable':true},
{id:'Desc',header:"celular",dataIndex:'doc_celular',width:250,'sortable':true},
{id:'Desc',header:"observacoes",dataIndex:'doc_observacoes',width:250,'sortable':true},
{id:'Desc',header:"assistsocial",dataIndex:'doc_assistsocial',width:100,'sortable':true},
{id:'Desc',header:"audiometria",dataIndex:'doc_audiometria',width:100,'sortable':true},
{id:'Desc',header:"otorrino",dataIndex:'doc_otorrino',width:100,'sortable':true},
{id:'Desc',header:"psicologo",dataIndex:'doc_psicologo',width:100,'sortable':true},
{id:'Desc',header:"premolde",dataIndex:'doc_premolde',width:100,'sortable':true},
{id:'Desc',header:"bera",dataIndex:'doc_bera',width:100,'sortable':true},
{id:'Desc',header:"selecao",dataIndex:'doc_selecao',width:100,'sortable':true},
{id:'Desc',header:"neuro",dataIndex:'doc_neuro',width:100,'sortable':true},
{id:'Desc',header:"entrega",dataIndex:'doc_entrega',width:100,'sortable':true},
{id:'Desc',header:"apmarcacod",dataIndex:'doc_apmarcacod',width:100,'sortable':true},
{id:'Desc',header:"adaptacaoa",dataIndex:'doc_adaptacaoa',width:100,'sortable':true},
{id:'Desc',header:"adaptacaob",dataIndex:'doc_adaptacaob',width:100,'sortable':true},
{id:'Desc',header:"terapiac",dataIndex:'doc_terapiac',width:100,'sortable':true},
{id:'Desc',header:"terapiad",dataIndex:'doc_terapiad',width:100,'sortable':true}
];
var ds = new Ext.data.Store({
proxy: new JAVAMAGAZINE.data.MemoryProxy(json),
reader: new Ext.data.JsonReader({root:'results',totalProperty:'total',id:'id'}, datamapping)
});
var cm = new Ext.grid.ColumnModel(columns);
grid = new Ext.grid.Grid('griddoc',{ds:ds,cm:cm,autoSizeColumns:true,autoHeight:true,loadMask:false,trackMouseOver:true});
cellclick = function (grid, rowIndex, colIndex, e){
var data = grid.getSelectionModel().getSelected().data;
AjaxFacadePaciente.abrir({id:data.id}, function(retorno){dwr.util.setValues(retorno);});
};
grid.addListener('cellclick', cellclick);
grid.render();
var gridHeader = grid.getView().getHeaderPanel(true);
var gridFooter = grid.getView().getFooterPanel(true);
var paging = new Ext.PagingToolbar(gridHeader,ds,
{pageSize:20,
displayInfo:true,
displayMsg:'Exibindo o resultado: {0} a {1} de {2} registros',
emptyMsg:"Sem resultados a exibir"});
ds.load({params:{start:0, limit:20}});
var layout = Ext.BorderLayout.create({
center: {
margins:{left:3,top:3,right:3,bottom:3},
panels: [new Ext.GridPanel(grid)]
}
}, 'doc-grid');
hasGrid = true;
JAVAMAGAZINE.Paciente.CACHE = true;
};
var validar = function(paciente) {
if(paciente.prontuario.trim() == ''){
var msg = "Preencha o Prontuario no formulário";
Ext.MessageBox.show({title: 'Erro...',msg:msg,width:240,progress:false,closable:true,shadow:false,proxyDrag:true,modal:true});
return false;
}
if(paciente.nome.trim() == ''){
var msg = "Preencha o nome no formulário";
Ext.MessageBox.show({title: 'Erro...',msg:msg,width:240,progress:false,closable:true,shadow:false,proxyDrag:true,modal:true});
return false;
}
return true;
};
var cadastrar = function() {
var paciente = {prontuario:'',nome:'',acompanhante:'',datainscricao:'', datanascimento:'',endereco:'',bairro:'',fone1:'',fone2:'',celular:'',observacoes:'',assistsocial:'',audiometria:'',otorrino:'',psicologo:'',premolde:'',bera:'',selecao:'',neuro:'',entrega:'',apmarcacod:'',adaptacaoa:'',adaptacaob:'',terapiac:'',terapiad:''};
dwr.util.getValues(paciente);
if(validar(paciente)) {
AjaxFacadePaciente.cadastraPaciente(paciente, {
callback:function(result){
if(hasGrid){
var ds = grid.getDataSource();
var temp = {
id:result.id,
doc_prontuario:result.prontuario,
doc_nome:result.nome,
doc_acompanhante:result.acompanhante,
doc_datainscricao:result.datainscricao,
doc_datanascimento:result.datanascimento,
doc_endereco:result.endereco,
doc_bairro:result.bairro,
doc_fone1:result.fone1,
doc_fone2:result.fone2,
doc_celular:result.celular,
doc_observacoes:result.observacoes,
doc_assistsocial:result.assistsocial,
doc_audiometria:result.audiometria,
doc_otorrino:result.otorrino,
doc_psicologo:result.psicologo,
doc_premolde:result.premolde,
doc_bera:result.bera,
doc_selecao:result.selecao,
doc_neuro:result.neuro,
doc_entrega:result.entrega,
doc_apmarcacod:result.apmarcacod,
doc_adaptacaoa:result.adaptacaoa,
doc_adaptacaob:result.adaptacaob,
doc_terapiac:result.terapiac,
doc_terapiad:result.terapiad
};
var record = new Ext.data.Record(temp);
var ds = grid.getDataSource();
var index = ds.getCount();//0;
ds.insert(index, record);
ds.commitChanges();
ds.reload();
grid.getView().refresh(true);
} else {
pesquisar();
}
},
errorHandler:function(errorString, exception) {
Ext.MessageBox.show({title: 'Erro...',msg:errorString,width:240,progress:false,closable:true,shadow:false,proxyDrag:true,modal:true});
},
timeout:5000,async:false
});
}
};
var salvar = function() {
try {
var selected = grid.getSelectionModel().getSelected().get('id');
var paciente = {id:0,prontuario:'',nome:'',acompanhante:'',datainscricao:'', datanascimento:'',endereco:'',bairro:'',fone1:'',fone2:'',celular:'',observacoes:'',assistsocial:'',audiometria:'',otorrino:'',psicologo:'',premolde:'',bera:'',selecao:'',neuro:'',entrega:'',apmarcacod:'',adaptacaoa:'',adaptacaob:'',terapiac:'',terapiad:''};
dwr.util.getValues(paciente);
AjaxFacadePaciente.salvarPaciente(paciente, {
callback:function(result){
var ds = grid.getDataSource();
ds.getById(selected).set('doc_prontuario',result.prontuario);
ds.getById(selected).set('doc_nome',result.nome);
ds.getById(selected).set('doc_acompanhante',result.acompanhante);
ds.getById(selected).set('doc_datainscricao',result.datainscricao);
ds.getById(selected).set('doc_datanascimento',result.datanascimento);
ds.getById(selected).set('doc_endereco',result.endereco);
ds.getById(selected).set('doc_bairro',result.bairro);
ds.getById(selected).set('doc_fone1',result.fone1);
ds.getById(selected).set('doc_fone2',result.fone2);
ds.getById(selected).set('doc_celular',result.celular);
ds.getById(selected).set('doc_observacoes',result.observacoes);
ds.getById(selected).set('doc_assistsocial',result.assistsocial);
ds.getById(selected).set('doc_audiometria',result.audiometria);
ds.getById(selected).set('doc_otorrino',result.otorrino);
ds.getById(selected).set('doc_psicologo',result.psicologo);
ds.getById(selected).set('doc_premolde',result.premolde);
ds.getById(selected).set('doc_bera',result.bera);
ds.getById(selected).set('doc_neuro',result.neuro);
ds.getById(selected).set('doc_entrega',result.entrega);
ds.getById(selected).set('doc_apmarcacod',result.apmarcacod);
ds.getById(selected).set('doc_adaptacaoa',result.adaptacaoa);
ds.getById(selected).set('doc_adaptacaob',result.adaptacaob);
ds.getById(selected).set('doc_terapiac',result.terapiac);
ds.getById(selected).set('doc_terapiad',result.terapiad);
//ds.commitChanges();
//grid.getView().refresh(true);
},
errorHandler:function(errorString, exception) {
Ext.MessageBox.show({title: 'Erro...',msg:errorString,width:240,progress:false,closable:true,shadow:false,proxyDrag:true,modal:true});
},
timeout:5000,async:false
});
} catch (e) {
Ext.MessageBox.show({
title: 'Aguarde...',msg: "selecione um registro " + e.message,
width:240,progress:false,closable:true,shadow:false,proxyDrag:true, modal:true
});
}
};
var remover = function() {
try {
var deleted = grid.getSelectionModel().getSelected().get('id');
/* */
Ext.MessageBox.confirm('Confirm', 'Deseja excluir o(s) registro(s) selecionado(s)?',
function(btn){
if(btn == 'yes'){
var selecteds = grid.getSelectionModel().getSelections();
var ds = grid.getDataSource();
list = new JAVAMAGAZINE.Collection();
for(var i = 0; i < selecteds.length; i++){
var selected = selecteds[i];
var temporario = {id:selected.get('id')};
list.add(temporario);
}
AjaxFacadePaciente.removePaciente(list.list(), {
callback:function(e){
if(e) {
for(var i = 0; i < selecteds.length; i++){
ds.remove(selecteds[i]);
}
} else {
Ext.MessageBox.show({
title: 'Aguarde...',msg: "Erro na remoção: ",
width:240,progress:false,closable:true,shadow:false,
proxyDrag:true,modal:true
});
}
},
errorHandler:function(errorString, exception) {
Ext.MessageBox.show({
title: 'Aguarde...',msg: "Erro na remoção: " + errorString,
width:240,progress:false,closable:true,shadow:false,proxyDrag:true,modal:true
});
},
timeout:1000,
async:false
});
}
}
);
} catch (e) {
Ext.MessageBox.show({
title: 'Aguarde...',msg: "selecione um item para excluir",
width:240,progress:false,closable:true,shadow:false,proxyDrag:true, modal:true
});
}
};
var limpar = function() {
dwr.util.byId('pacienteform').reset();
};
return {
init:function(){
var innerLayout = JAVAMAGAZINE.Control.getInnerLayout();
innerLayout.beginUpdate();
var tb = innerLayout.getRegion("south").getPanel("doc-preview").getToolbar();
tb.add(
{
text: 'Pesquisar',
enableToggle: true,
toggleHandler:pesquisar,
pressed: true
},
{
text: 'Limpar',
enableToggle: true,
toggleHandler:limpar,
pressed: true
},
{
text: 'Cadastrar',
enableToggle: true,
toggleHandler:cadastrar,
pressed: true
}
);
tb.addSeparator();
tb.add(
{
text: 'Alterar',
enableToggle: true,
toggleHandler:salvar,
pressed: true
},
{
text: 'Excluir',
enableToggle: true,
toggleHandler:remover,
pressed: true
}
);
innerLayout.getRegion("south").getPanel("doc-preview").refresh();
innerLayout.restoreState();
innerLayout.endUpdate(true);
}
};
}();
JAVAMAGAZINE.Paciente.json = function(){this.obj;};
JAVAMAGAZINE.Paciente.json.prototype.setObj = function(obj){this.obj = obj;};
JAVAMAGAZINE.Paciente.json.prototype.open = function(start, limit){
var dto = {total:0,results:[]};
AjaxFacadePaciente.openPaciente(this.obj, start, limit, JAVAMAGAZINE.Paciente.CACHE, {
callback:function(result){dto = result; },
errorHandler:function(errorString, exception) {
Ext.MessageBox.show({title: ‘Aguarde…’,msg:errorString,width:240,progress:false,closable:true,shadow:false,proxyDrag:true,modal:true});
},
timeout:1000,async:false
});
return dto;
};
por favor se alguem pode me ajudar muito obrigado que seja até um tutorial de erros de paginação ta incomodado muito eu e meu cliente.
valeu