0
I need to create a treatment for, if no investment fund record is found, avoid error and nullpointer.
You’re making me wrong again:
java.lang.Illegalargumentexception: id to load is required for loading
Line to be treated:
fu.setFundo(fundoService.findByCoFundoAnbima(fu.getCoFundoAnbima()).getId());
Method:
    if (fundos != null) {
        for (FundoSimulacao fu : fundos) {
            fu.setSimulacao(simulacao);
            fu.setFundo(fundoService.findByCoFundoAnbima(fu.getCoFundoAnbima()).getId());
            fundoSimulacaoService.save(fu);
        }
    }   
Fundoservice.java
/**
 * Carrega o fundo conforme o id
 * 
 * @param id
 * @return Fundo
 */
public Fundo findByCoFundoAnbima(Integer id) {
    return fundoRepository.findById(id);
}
Fundorepository.java
@Repository
public class FundoRepository extends AbstractRepository<Fundo> {
    private static final Logger LOG = Logger.getLogger(FundoRepository.class);
    /**
     * 
     */
    public FundoRepository() {
        super(Fundo.class);
    }
    /**
     * retorna a lista de simulações
     * 
     * @return List<Fundo>
     */
    public List<Fundo> get() {
        LOG.info(" List<Fundo> get() ");
        TypedQuery<Fundo> tquery = getEntityManager().createNamedQuery(Constants.FUNDO_NAMED_QUERY, Fundo.class);
        return tquery.getResultList();
    }
}
Entity Background.java
@Entity
@Table(schema = Constants.SIMFI_SCHEMA_NAME, name = Constants.FUNDO_TABLE_NAME)
@NamedQueries({ @NamedQuery(name = Constants.FUNDOS_NAMED_QUERY, query = Constants.FUNDOS_QUERY) })
public class Fundo implements AbstractEntity<Integer> {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = Constants.CO_FUNDO)
    private Integer id;
    @Column(name = Constants.CO_FUNDO_ANBIMA, nullable = false)
    private Integer fundoAnbima;
    @Column(name = Constants.DE_OBJETIVO)
    private String objetivo;
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = Constants.CO_ESTRATEGIA)
    private Estrategia estrategia;
    @Override
    public Integer getId() {
        return id;
    }
    @Override
    public void setId(Integer id) {
        this.id = id;
    }
    public void setEstrategia(Estrategia estrategia) {
        this.estrategia = estrategia;
    }
    public Estrategia getEstrategia() {
        return estrategia;
    }
    public void setFundoAnbima(Integer fundoAnbima) {
        this.fundoAnbima = fundoAnbima;
    }
    public Integer getFundoAnbima() {
        return fundoAnbima;
    }
    public void setObjetivo(String objetivo) {
        this.objetivo = objetivo;
    }
    public String getObjetivo() {
        return objetivo;
    }
}
Entity Fundosimulacao.java
@Entity
@Table(schema = Constants.SIMFI_SCHEMA_NAME, name = Constants.FUNDO_SIMULACAO_TABLE_NAME)
@NamedQueries({ @NamedQuery(name = Constants.FUNDO_SIMULACAO_NAMED_QUERY, query = Constants.FUNDO_SIMULACAO_QUERY) })
public class FundoSimulacao implements AbstractEntity<Integer> {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = Constants.CO_FUNDO_SIMULACAO)
    private Integer id;
    @Column(name = Constants.CO_FUNDO, nullable = false)
    private Integer fundo;
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = Constants.CO_SIMULACAO)
    private Simulacao simulacao;
    @Transient
    private Integer coFundoAnbima;
    @Override
    public Integer getId() {
        return id;
    }
    @Override
    public void setId(Integer id) {
        this.id = id;
    }
    public Integer getFundo() {
        return fundo;
    }
    public void setFundo(Integer fundo) {
        this.fundo = fundo;
    }
    public Simulacao getSimulacao() {
        return simulacao;
    }
    public void setSimulacao(Simulacao simulacao) {
        this.simulacao = simulacao;
    }
    public Integer getCoFundoAnbima() {
        return coFundoAnbima;
    }
    public void setCoFundoAnbima(Integer coFundoAnbima) {
        this.coFundoAnbima = coFundoAnbima;
    }
}
I did it differently. I only had to change the parameter to: fu.setFundo(backService.findByCoFundoAnbima(fu.getFundo().longValue().getId()); Thanks for the tip!
– aleestevao