在编辑屏幕中,我使用 p:ajax
获取自动完成字段中的选定值并填写表单中的其他字段。但是当 ajax 运行时,它会更新数据库表中的信息(更新)。我该如何阻止这种行为?毕竟,我应该只在单击“保存”按钮时执行此操作。
代码:
<h:panelGroup>
<p:autoComplete id="demandaBeanDemandaLogradouroNome" value="#{demandaBean.demanda.logradouro}"
var="_item" minQueryLength="3" maxResults="15" required="true"
itemLabel="#{_item.nome}" itemValue="#{_item}" converter="#{logradouroBean.converter}"
completeMethod="#{logradouroBean.buscaLogradouro}" title="Busca pelo Logradouro">
<p:column>
<h:outputText value="#{_item.categoria.descricao}"/>
</p:column>
<p:column>
<h:outputText value="#{_item.nome}"/>
</p:column>
<p:ajax partialSubmit="true" immediate="true" event="itemSelect" update="demandaBeanDemandaBairro demandaBeanDemandaCruzamento"
listener="#{logradouroBean.buscaComplementoSelectEvent}"/>
</p:autoComplete>
<p:message for="demandaBeanDemandaLogradouroNome" styleClass="error"/>
</h:panelGroup>
请您参考如下方法:
我发现 Hibernate 会同步持久对象,如果您更改它,它会自动在数据库中更新。为了解决这个问题,我使用了带有 @Transient 标签的辅助对象。谢谢。