Autor |
Mensagem |
|
Valeu Pedro!
Desse jeito funcionou.
O meu código ficou assim:
Code:
protected TransactionTemplate transactionTemplate;
public void saveOrUpdate(final BEAN bean) {
getTransactionTemplate().execute(new TransactionCallbackWithoutResult() {
protected void doInTransactionWithoutResult(TransactionStatus status) {
GeoService.super.saveOrUpdate(bean);
if (hasSpatialElement()) {
spatialService.saveOrUpdate(bean);
}
}
});
}
public TransactionTemplate getTransactionTemplate() {
return transactionTemplate;
}
public void setTransactionTemplate(TransactionTemplate transactionTemplate) {
this.transactionTemplate = transactionTemplate;
}
Abraço!
|
 |
|
Oi Pedro, obrigado pela resposta.
Na verdade eu estou querendo que o meu método do service esteja dentro de uma transação. Este método chama dois métodos de dao's diferentes. Eu queria que se ocorresse um erro em qualquer um dos dao's a transação fosse cancelada e fosse efetuado o rollback.
Alguma idéia?
Obrigado
|
 |
|
Fala galera, tudo bom?
Estou tentando utilizar transações na minha camada de serviço, mas estou tendo alguns problemas.
Estava pensando em utilizar o mecanismo de transações do spring.
Queria saber se alguém já utilizou este tipo de transações. Eu tenho um método do meu service que efetua duas operações. Eu quero que, se ocorrer algum erro em qualquer das operações, seja efetuado um rollback.
Valeu galera!
|
 |
|
Não funcionou. Parece que ele não está tendo acesso ao meu arquivo.
Por enquanto vou deixar o código dentro do próprio HeadTag.jsp.
Se conseguir resolver eu te aviso. E se você pensar em outra alternativa também me avisa por favor.
Obrigado!!
|
 |
|
Pedro,
Eu fiz isso que você falou e funcionou em partes. Se eu inserir o código do meu arquivo header.jsp diretamente no arquivo HeadTag.jsp funciona perfeitamente. Mas quando eu tento fazer um include do meu arquivo header.jsp no HeadTag.jsp eu estou tendo um problema.
Se eu coloco o meu arquivo no mesmo pacote do HeadTag.jsp e executo o include:
Code:
<jsp:include flush="true" page="header.jsp" />
funciona normalmente.
Mas quando eu coloco o meu jsp dentro da raiz web da aplicação eu não consigo incluir.
Code:
<jsp:include flush="true" page="${pageContext.request.contextPath}/geral/header.jsp" />
O problema é que eu não posso deixar o arquivo dentro do mesmo pacote do HeadTag.jsp porque existem alguns jsp's que não utilizam o framework. Nestes jsp's eu teria que fazer o include, logo o header.jsp teria que estar na raiz web da aplicação. E eu não queria ter que duplicar o arquivo dentro do pacote e na raiz web.
Como o HeadTag.jsp consegue carregar os js's e os css's que estão na raiz web (WebRoot/css e WebRoot/js) eu imaginei que pudesse ter um jeito de carregar também o meu header (WebRoot/geral/header.jsp).
Valeu pela ajuda!
|
 |
|
Boa tarde pessoal,
Estou com o seguinte problema:
Preciso inserir em todas as minhas telas um jsp que criei com o nome header.jsp, mas não queria ter que incluí-lo página por página.
Após dar uma olhada na estrutura do neo, vi que ele insere em todos os jsp's o arquivo HeadTag.jsp, e este carrega os css's e os js's do sistema.
Eu queria saber se tem como eu alterar esse arquivo para que ele carregue também o meu arquivo header.jsp.
Se alguém puder me ajudar eu agradeço muito!!
Valeu!!!
|
 |
|
Obrigado Pedro!
Funcionou sim.
|
 |
|
Boa tarde galera,
Tô com um problema que é o seguinte:
Estou em uma tela de cadastro e preciso que, após cadastrar o registro, seja exibida a tela de cadastro novamente, mas com os campos ainda preenchidos e com a mensagem de 'Registro exibido com sucesso'.
Eu consegui voltar pra tela de cadastro reescrevendo o seguinte método:
Code:
@Override
protected ModelAndView getSalvarModelAndView(WebRequestContext request,
Profissional bean) {
String idParam = request.getParameter("id");
if (idParam == null || idParam.equals("")) {
return sendRedirectToAction(ENTRADA);
}
return super.getSalvarModelAndView(request, bean);
}
Mas os campos vem em branco.
Alguém sabe como posso fazer pra que a tela exiba os dados recém cadastrados??
Valeu!!
|
 |
|
Funcionou sim.
Valeu!!
|
 |
|
Boa tarde galera,
estou exibindo uma listagem de registros, onde um dos campos listados é do tipo boolean:
Code:
<t:listagem>
<t:janelaResultados>
<t:tabelaResultados>
<t:property name="status" label="Status" />
</t:tabelaResultados>
</t:janelaResultados>
</t:listagem>
Então é exibido o label "Sim" ou "Não", repectivamente para true ou false.
Eu queria trocar o texto exibido para 'Ativo' ou 'Inativo'.
Alguém sabe como eu consigo fazer isso??
Valeu!!
|
 |
|
Entendi sim...
Muito obrigado!!
|
 |
|
Obrigado Pedro,
O cenário é o seguinte:
Eu tenho uma entidade Empresa que possui uma lista de profissionais, mapeada da seguinte forma em Profissional:
Code:
@ManyToOne
@JoinColumn(name = "AD6NUMEM", nullable = false)
public Empresa getEmpresa() {
return empresa;
}
e em Empresa:
Code:
@OneToMany(mappedBy = "empresa")
public List<Profissional> getProfissionais() {
return profissionais;
}
Eu tenho um service chamado EmpresaService e reimplementei o método delete da seguinte forma:
Code:
public void delete(Empresa empresa) {
empresa = this.load(empresa);
if (empresa.getProfissionais() != null
&& !empresa.getProfissionais().isEmpty()) {
throw new NeoException("A empresa não pode ser "
+ "excluída "
+ "pois possui profissionais cadastrados.");
}
super.delete(empresa);
}
Quando o método getProfissionais() é executado a seguinte exceção é disparada:
Code:
13:06:13,105 ERROR [LazyInitializationException] failed to lazily initialize a collection of role: br.com.geoexplore.geoenterprise.adm.bean.Empresa.profissionais, no session or session was closed
org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: br.com.geoexplore.geoenterprise.adm.bean.Empresa.profissionais, no session or session was closed
at org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationException(AbstractPersistentCollection.java:358)
at org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationExceptionIfNotConnected(AbstractPersistentCollection.java:350)
at org.hibernate.collection.AbstractPersistentCollection.readSize(AbstractPersistentCollection.java:97)
at org.hibernate.collection.PersistentBag.isEmpty(PersistentBag.java:229)
at br.com.geoexplore.geoenterprise.adm.service.EmpresaService.delete(EmpresaService.java:44)
at br.com.geoexplore.geoenterprise.adm.service.EmpresaService.delete(EmpresaService.java:1)
at br.com.linkcom.neo.controller.crud.CrudController.excluir(CrudController.java:315)
at br.com.geoexplore.geoenterprise.adm.controller.GeoController.excluir(GeoController.java:18)
at br.com.linkcom.neo.controller.crud.CrudController.doExcluir(CrudController.java:303)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at br.com.linkcom.neo.controller.MultiActionController.invokeNamedMethod(MultiActionController.java:504)
at br.com.linkcom.neo.controller.MultiActionController.handleRequestInternal(MultiActionController.java:367)
at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:139)
at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:44)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:717)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:658)
at br.com.linkcom.neo.controller.DispatcherServlet.doService(DispatcherServlet.java:59)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:392)
Eu fiz o debug do código e verifiquei que se eu tentar executar o método getter dentro do DAO, a lista é carregada normalmente. Então eu imagino que deve ser algo ligado ao contexto da transação, mas não consegui resolver.
Valeu pela ajuda!!
|
 |
|
Bom dia galera,
Estou começando a trabalhar agora com o neo e estou tendo um problema na hora de carregar os relacionamentos da minha entidade. Ao tentar acessar os relacionamentos da minha entidade dentro do service está ocorrendo erro no carregamento. Tentei definir uma transação para o meu método do service mas não estou conseguindo.
Será que alguém consegue me ajudar??
Valeu!!!
|
 |
|