Estou com um problema no meu serviço, onde tenho uma entidade mapeada, chamada Parametro e outra, ParametroValorado, onde em Parametro, tenho uma coleção de ParametroValorado.
Criei um método para atualizar os parametros valorados de um model, passando o Parametro como ‘parametro’ no método.
Assim, dei um clear na coleção e usei o merge do EntityManager. Se faço alguma alteração no Parametro, ele é atualizado, mas a coleção de ParametroValorado dentro dele não.
Alguém pode me ajudar com isso?
Segue o código:
[code] @TransactionAttribute(TransactionAttributeType.REQUIRED)
public void atualizaParametroValorado(Parametro parametro, Collection coll) throws NegocioException, SistemaException{
try {
//obtencao dos parametros
Parametro paran = padraoCRUDFacade.carregar(Parametro.class, parametro.getId());
//limpando a colecao de parametros valorados
paran.getValores().clear();
//neste ponto a colecao esta vazia, e estou mandando o model Parametro para fazer o merge
manager.merge(paran);
manager.flush();
} catch (EntityExistsException e) {
throw new NegocioException(InfraCorpUtil.getTexto(InfraCorpArquivo.TABELA, InfraCorpMensagem.ERRO_REGISTRO_DUPLICADO, ParametroValorado.class.getSimpleName()), e);
} catch (Exception e) {
String mensagemErro = InfraCorpUtil.getTexto(InfraCorpArquivo.TABELA, InfraCorpMensagem.ERRO, InfraCorpConstantesIf.PROCESSO_GRAVAR, ParametroValorado.class.getSimpleName());
log.error(mensagemErro, e);
throw new SistemaException(mensagemErro);
}
}
[/code]