Hibernate - Problema com Restrictions.in [RESOLVIDO]

Olá…

Estou fazendo uma consulta utilizando criteria.example

no entanto, o criteria.example, excluir associacoes da consulta

então estou fazendo um consulta da seguinte forma:

public List<Carro> buscaAvancada(Carro obj){
		DetachedCriteria criteria = DetachedCriteria.forClass(Carro.class);
				
		Example example = Example.create(obj);  
		example.enableLike(MatchMode.ANYWHERE);
		example.ignoreCase();
		example.excludeZeroes();
		example.excludeProperty("valor");
		example.excludeProperty("valorIPVA");
		example.excludeProperty("anoFabricacao");
		example.excludeProperty("anoModelo");
		example.excludeProperty("importado");
		example.excludeProperty("kilometragem");
		example.excludeProperty("versao");
		criteria.add(example);
		criteria.add(Restrictions.in("opcionalVeiculo", obj.getOpcionalVeiculo()));

		List<Carro> list = getHibernateTemplate().findByCriteria(criteria);
				
		return list;
	}

comentando a linha que tem o Restriction.in, a consulta funciona ok, sem excluir o opcionalVeiculo

sem comentar tenho o seguinte error:

alguns atributo da classe Carro:

        ... atributos ....
	private String versao;
	private Boolean blindado;
	private String cambio;
	
	@OneToMany(cascade=CascadeType.MERGE,fetch=FetchType.EAGER)
	@JoinTable(name="prd_carro_opcional",
			   joinColumns=@JoinColumn(name="carro_id"),
			   inverseJoinColumns=@JoinColumn(name="opcional_id")
			   )
	private List<OpcionalVeiculo> opcionalVeiculo;
        ... mais atributos ...
        //apos os atributos, todos os getters and setters	
/

Att Dirceu

subistituindo:

criteria.add(Restrictions.in("opcionalVeiculo", obj.getOpcionalVeiculo()));

por:

Long[] ids = new Long[obj.getOpcionalVeiculo().size()];
		for(int i = 0;i<obj.getOpcionalVeiculo().size();i++){
			ids[i] = obj.getOpcionalVeiculo().get(i).getId();
		}
		criteria.createCriteria("opcionalVeiculo")
		.add(Restrictions.in("id", ids));

funcionou

Valeu por compartilhar a sua solução!
Resolveu para mim também!