В моем приложении у меня есть таблица PessoaFuncao.
При включении регистра у меня есть дата транзакции, название функции и статус проводки, текущий или нет.
Когда я открываю экран для этой функции, появляется история сервера, например
01/01/2019 неактивный программист 01/03/2019 активный аналитик
Когда я добавляю новую запись, например, 01/09/2019 активный супервизор, по триггеру, в базу данных, последняя запись, которая была до сих пор, имеет статус неактивной. дата должна появиться 01.01.2009, не текущий программист, 03.01.2009, не текущий аналитик, 09.01.2009 активный руководитель
однако он выглядит так:
01/01/2019 нет-активный программист 03/03/2019 активный аналитик1015 *
Мне кажется, что когда я выбираю повторную сборку списка данных, список не переделывается. Как я могу это сделать?
<h:form id="PessoaFuncaoListForm"
>
<p:dataTable id="tblPessoaFuncao" value="#{pessoaFuncaoBean.listaPessoaFuncao}" var="item"
selectionMode="single" selection="#{pessoaFuncaoBean.pessoaFuncao}"
paginator="true"
paginatorPosition="bottom"
rowKey="#{item.id}"
rows="10"
rowsPerPageTemplate="10,20,30,40,50"
widgetVar="tabelaPessoaFuncao"
sortBy="#{item.data}"
sortOrder="ascending"
>
<f:facet name="header">
#{mensagem.listaPessoaFuncao} #{pessoaBean.pessoa.nome}
</f:facet>
<p:ajax event="rowSelect" update="createButton editButton voltarButton" />
<p:remoteCommand name="onCellEdit" actionListener="#{pessoaFuncaoBean.read()}" update="tblPessoaFuncao"/>
<p:column filterBy="#{item.data}" filterMatchMode="exact"
style="width:10%;" filterStyle="width:70%;"
sortBy="#{item.data}"
>
<f:facet name="header">
<h:outputText value="#{mensagem.data}" />
</f:facet>
<h:outputText value="#{item.dataForm}" >
<f:convertDateTime pattern="dd/MM/yyyy" />
</h:outputText>
</p:column>
<p:column filterBy="#{item.funcao}"
headerText="#{mensagem.funcao}"
filterMatchMode="exact"
style="width:30%;" filterStyle="width:80%;"
sortBy="#{item.funcao}"
>
<f:facet name="filter">
<p:selectOneMenu onchange="PF('tabelaPessoaFuncao').filter()" style="width:90%;">
<f:selectItem itemLabel="#{mensagem.todos}"
noSelectionOption="true" />
<f:selectItems value="#{funcaoBean.listaFuncao}"
itemLabel="#{funcaoBean.funcao.descricao}"
var="#{funcaoBean.funcao.id}" />
</p:selectOneMenu>
</f:facet>
<h:outputText value="#{item.funcao}"/>
</p:column>
<p:column sortBy="#{item.observacao}" filterBy="#{item.observacao}" filterMatchMode="contains"
filterStyle="width:70%;">
<f:facet name="header">
<h:outputText value="#{mensagem.observacao}" />
</f:facet>
<h:outputText value="#{item.observacao}"/>
</p:column>
<p:column filterBy="#{item.vigente}"
headerText="#{mensagem.vigente}"
filterMatchMode="exact"
>
<f:facet name="filter">
<p:selectOneMenu onchange="PF('tabelaPessoaFuncao').filter()" >
<f:selectItem itemLabel="#{mensagem.todos}"
noSelectionOption="true" />
<f:selectItems value="#{enumVigenteBean.enumVigentes}" var="vigente"
itemValue="#{vigente}" itemLabel="#{vigente.descricao}" />
</p:selectOneMenu>
</f:facet>
<h:outputText value="#{item.vigente.descricao}"/>
</p:column>
<f:facet name="footer">
<p:commandButton id="createButton" actionListener="#{pessoaFuncaoBean.prepareCreate()}" icon="ui-icon-plus"
value="#{mensagem.incluir}" action="/pessoaFuncao/create.xhtml"
disabled="#{!perfilUsuarioTagAcessoBean.verificarPermissaoAcesso(permissoes.PESSOA_FUNCAO_CREATE)}"/>
<p:commandButton id="editButton" icon="ui-icon-pencil" value="#{mensagem.alterar}"
action="/pessoaFuncao/update.xhtml"
disabled="#{(empty pessoaFuncaoBean.pessoaFuncao)
|| (!perfilUsuarioTagAcessoBean.verificarPermissaoAcesso(permissoes.PESSOA_FUNCAO_UPDATE))}"/>
<p:commandButton id="voltarButton" icon="ui-icon-close" value="#{mensagem.voltar}" action="#{pessoaBean.voltaPessoa()}" />
</f:facet>
</p:dataTable>
<h:commandLink>
<p:graphicImage library="imagens" name="excel.png" />
<p:dataExporter type="xls" target="tblPessoaFuncao" fileName="tabelaPessoaFuncao" pageOnly="true"/>
</h:commandLink>
<h:commandLink>
<p:graphicImage library="imagens" name="pdf.png" />
<p:dataExporter type="pdf" target="tblPessoaFuncao" fileName="tabelaPessoaFuncao" pageOnly="true" />
</h:commandLink>
</h:form>
Боб:
@Override
public String create() {
pessoaFuncao.setId(gerarNovoId(pessoaFuncaoDao));
criarObjeto(pessoaFuncaoDao, pessoaFuncao);
pessoaFuncaoDao.acertaVigencia(pessoaFuncao);
this.listaPessoaFuncao.clear();;
read();
limparReferenciaObjeto();
return "/pessoaFuncao/list";
}
/**
* Lê lista de progressões
*/
@Override
public void read() {
listaPessoaFuncao = pessoaFuncaoDao.findAllPessoaFuncaoByPessoa(pessoa);
}
/**
* Atualiza pessoaFuncao
*
* @return Caminho que o navegador será direcionado
*/
@Override
public String update() {
atualizarObjeto(pessoaFuncaoDao, pessoaFuncao);
read();
limparReferenciaObjeto();
return "/pessoaFuncao/list";
}
/**
* Inicializa a instiuição
*/
@Override
public void prepareCreate() {
pessoaFuncao = new PessoaFuncao();
pessoaFuncao.setPessoa(this.pessoa);
}
/**
* Define pessoaFuncao como null
*/
@Override
public void limparReferenciaObjeto() {
pessoaFuncao = null;
}
public PessoaFuncao getPessoaFuncao() {
return pessoaFuncao;
}
public void setPessoaFuncao(PessoaFuncao pessoaFuncao) {
this.pessoaFuncao = pessoaFuncao;
}
public PessoaFuncao getPessoaFuncaoNew() {
return pessoaFuncaoNew;
}
public void setPessoaFuncaoNew(PessoaFuncao pessoaFuncaoNew) {
this.pessoaFuncaoNew = pessoaFuncaoNew;
}
public List<PessoaFuncao> getListaPessoaFuncao() {
return listaPessoaFuncao;
}
public void setListaPessoaFuncao(List<PessoaFuncao> listaPessoaFuncao) {
this.listaPessoaFuncao = listaPessoaFuncao;
}
public void setPessoa(Pessoa paramPessoa) {
this.pessoa = paramPessoa;
read();
}
Дао
public List<PessoaFuncao> findAllPessoaFuncaoByPessoa(Pessoa pessoa) {
//System.err.println(pessoa.toString());
try {
return findAllPessoaFuncaoByPessoaIdTry(pessoa.getId());
} catch (Exception e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
return null;
}
}
/**
* Obtém todos os registros pessoaFuncao de uma pessoa *
* @param id Id da pessoa
* @return Lista funcao pessoaFuncao da pessoa
*/
public List<PessoaFuncao> findAllPessoaFuncaoByPessoaIdTry(int id) {
//System.err.println(id);
String qlString = "Select c from PessoaFuncao c Where c.pessoa.id = " + id;
Query query;
query = em.createQuery(qlString);
return query.getResultList();
}