Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Erro ao persistir dados

Estou com erro quando tento persistir ou fazer um merge, apresenta o erro:

abr 25, 2019 11:01:29 PM org.apache.catalina.core.StandardWrapperValve invoke
GRAVE: Servlet.service() for servlet [dispatcher] in context with path [/site-ecc] threw exception [Request processing failed; nested exception is org.springframework.dao.InvalidDataAccessApiUsageException: org.hibernate.TransientPropertyValueException: object references an unsaved transient instance - save the transient instance before flushing : br.com.sistemas.ecc.modelo.Colaborador.cargo -> br.com.sistemas.ecc.modelo.Cargo; nested exception is java.lang.IllegalStateException: org.hibernate.TransientPropertyValueException: object references an unsaved transient instance - save the transient instance before flushing : br.com.sistemas.ecc.modelo.Colaborador.cargo -> br.com.sistemas.ecc.modelo.Cargo] with root cause
org.hibernate.TransientPropertyValueException: object references an unsaved transient instance - save the transient instance before flushing : br.com.sistemas.ecc.modelo.Colaborador.cargo -> br.com.sistemas.ecc.modelo.Cargo

Só que o problema é que eu não quero persistir essa informação de cargo, pois é vindo de uma outro cadastro, ou seja, ela deveria pegar a chave estrangeira e gravar.

3 respostas

Verifique se isso pode te ajudar ou ser útil:

https://stackoverflow.com/questions/2302802/object-references-an-unsaved-transient-instance-save-the-transient-instance-be/2302814

Muito obrigado Guilherme, mas eu já havia lido esse link. Eu já tenho a entity numa outra tabela. Isso é um cadastro simples, que quando eu tento persistir a segunda entity como uma chave estrangeira que da esse erro no spring. Porém se for feito via código diretamente não apresenta esse erro.

solução!

Consegui resolver o meu problema com a seguinte situação. Quando eu tento persistir os dados o meu objeto estava chegando como null, porque o spring não conseguia converter o objeto em Integer para persistir. Sendo assim eu criei uma nova classe implementando a interface Converter do Spring e adicionei a minha classe de configuração como DefaultFormattingConversionService. Depois disso passou a persistir perfeitamente.

Segue alguns modelo https://www.baeldung.com/spring-type-conversions https://www.logicbig.com/tutorials/spring-framework/spring-web-mvc/spring-mvc-custom-converter.html