Problemas com HQL e Collection [RESOLVIDO]

Galera GUJ, tenho a seguinte situação:

@Entity
public class Veiculo{

    @Id
    private Integer id;

    @Embedded
    private CaracteristicasDoVeiculo caracteristicasDoVeiculo;

    //GET's e SET's
}
@Embeddable
public class CaracteristicasDoVeiculo{
    //alguns atributos
    @OneToMany(...)
    @Cascade(...)
    private List<EquipamentoDoVeiculo> equipamentos = new ArrayList<EquipamentoDoVeiculo>();
}
@Entity
public class EquipamentoDoVeiculo {
   @Id
   private Integer id;

    @ManyToOne(...)
    @JoinColumn(...)
    @Cascade(...)
    private Equipamento equipamento;

    //Alguns atributos
   // GET's e SET's
}
@Entity
public class Equipamento{
   @Id
   private Integer id;
   //Atributos
  //GET's e SET's
}

O problema é o seguinte, tenho que fazer um relatorio de Veiculos onde o usuario pode entrar com uma lista de equipamentos como filtro.

Estou montando a minha HQL da seguinte maneira:
HQL

select v from Veiculo v where v.caracteristicasDoVeiculo.equipamentos in  (:equipamentos)

Abaixo o codigo que estou chamando para executar o mesmo:

  List<EquipamentoDoVeiculo> list = new ArrayList<EquipamentoDoVeiculo>();
  for(Equipamento equipamento:  filtro.getEquipamentos()){
          list.add(new EquipamentoDoVeiculo(equipamento, null));
   }
   consulta.setParameterList("equipamentos",  list);

Ai quando rodo a minha aplicação esta acorrendo o seguinte erro:

Caused by: java.sql.SQLException: Parâmetro IN ou OUT ausente do índice:: 1
	at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:70)
	at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:133)
	at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:199)
	at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:263)
	at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:271)
	at oracle.jdbc.driver.OraclePreparedStatement.processCompletedBindRow(OraclePreparedStatement.java:1737)
	at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3381)
	at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3430)
	at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1491)
	at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:186)
	at org.hibernate.loader.Loader.getResultSet(Loader.java:1787)
	at org.hibernate.loader.Loader.doQuery(Loader.java:674)
	at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
	at org.hibernate.loader.Loader.doList(Loader.java:2213)

Alguém já passou por essa situação?

Qual eh a query gerada pelo Hibernate (coloque a propriedade hibernate.show_sql como “true”) ? O codigo Hibernate parece correto, mas tente ver qual a SQL que ele esta gerando e veja se a query roda corretamente no Oracle.

partenon,

Resolvi o problema colocando um inner join.
O meu HQL ficou assim:

             select distinct v from Veiculo v 
             inner join v.caracteristicasDoVeiculo.equipamentos as equipamentos 
             where equipamentos.equipamento in  (:equipamentos) 

Ai funcionou blza.

Esse problema ocorreu ontem no final do dia, ai vc ja viu, no final do dia vc quer saber so de ir embora. Ai hoje cedo eu resolvi desse jeito.

Valeu pela ajuda.

Att