Ajuda DetachedCriteria

Bom queria pegar todas as vendas que tivessem idUnidadeMedida = 8 - Tentei de varias formas e não consegui eis o meu criteria

public List<Venda> listarVendaAGranel(Date dataInicio, Date dataFim, String... params){
		
		DetachedCriteria criteria = DetachedCriteria.forClass(Venda.class).addOrder(Order.asc("data"));
		
		criteria.setFetchMode("cliente", FetchMode.JOIN);
		criteria.setFetchMode("situacaoMovimentacao", FetchMode.JOIN);	
		criteria.setFetchMode("itemVendas", FetchMode.JOIN);
		criteria.setFetchMode("itemVendas.produtoExemplar", FetchMode.JOIN);						  
		criteria.setFetchMode("itemVendas.produtoExemplar.unidadeMedida", FetchMode.JOIN);
	        
		criteria.add(Restrictions.or(Restrictions.eq("situacaoMovimentacao.idSituacaoMovimentacao", Short.parseShort("1")),   
	           	 Restrictions.eq("situacaoMovimentacao.idSituacaoMovimentacao", Short.parseShort("3")))); 
		
		if(dataInicio != null){
			criteria.add(Restrictions.ge("data", dataInicio));
		}
		
		if(dataFim != null){
			criteria.add(Restrictions.le("data", dataFim));
		}
		
		criteria.setResultTransformer(criteria.DISTINCT_ROOT_ENTITY);  
		
		CriteriaInclude.include(criteria, params);
		
		return _VendaRepository.find(criteria);
	}

Eis as entidades.

@Entity
@Table(name = "Venda")
public class Venda implements Serializable{

	private static final long serialVersionUID = 1L;
	@Id
	@GeneratedValue
	@Column(name="idVenda", nullable=false)
	private Integer idVenda;

	@NotNull(message="O campo data da venda não pode ser nulo.")
	@Column(name="data", nullable=false)
	@Temporal(TemporalType.TIMESTAMP)
	private Date data;

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "venda")
	@Size(min = 1 , message = "Não foi adicionado nenhum produto na venda.")
	private List<ItemVenda> itemVendas;

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumns({
		@JoinColumn(name ="idCliente" ,referencedColumnName ="idCliente", nullable =true )})
	@ForeignKey(name="FK_Venda_Cliente")
	private Cliente cliente;

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumns({
		@JoinColumn(name ="idSituacaoMovimentacao" ,referencedColumnName ="idSituacaoMovimentacao", nullable =false )})
	@ForeignKey(name="FK_Venda_SituacaoMovimentacao")
	private SituacaoMovimentacao situacaoMovimentacao;

       //gets and sets
}
@Entity
@Table(name = "ItemVenda")
public class ItemVenda implements Serializable{


	private static final long serialVersionUID = 1L;
	@Digits(message="O campo quantidade não é decimal",fraction = 3,integer = 10)
	@NotNull(message="O campo quantidade não pode ser vazio.")
	@DecimalMin(value = "0.1" ,message = "O campo quantidade deve ser maior que 0")
	@Column(name="quantidade", nullable=false,scale =10,precision =3)
	private BigDecimal quantidade;

	@Digits(message="O campo valor não é decimal",fraction = 2,integer = 10)
	@NotNull(message="O campo valor não pode ser vazio.")
	@Column(name="valor", nullable=false,scale =10,precision =2)
	private BigDecimal valor;

	@Id
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumns({
		@JoinColumn(name ="idProdutoExemplar" ,referencedColumnName ="idProdutoExemplar", nullable =false )})
	@ForeignKey(name="FK_ItemVenda_ProdutoExemplar")
	private ProdutoExemplar produtoExemplar;

	@Id
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumns({
		@JoinColumn(name ="idVenda" ,referencedColumnName ="idVenda", nullable =false )})
	@ForeignKey(name="FK_ItemVenda_Venda")
	private Venda venda;
       //gets and sets
}
@Entity
@Table(name = "ProdutoExemplar")
public class ProdutoExemplar implements Serializable {

	private static final long serialVersionUID = 1L;
	@Id
	@GeneratedValue
	@Column(name = "idProdutoExemplar", nullable = false)
	private Integer idProdutoExemplar;

	@Column(name = "observacao", nullable = true)
	private String observacao;

	@Digits(message = "O campo valor não é decimal", fraction = 2, integer = 10)
	@NotNull(message = "O campo valor não pode ser nulo.")
	@Column(name = "valor", nullable = false, scale = 2, precision = 10)
	private BigDecimal valor;

	@Size(message = "O campo codigoBarra deve ter no máximo {max} caracteres", min = 0, max = 20)
	@Column(name = "codigoBarra", nullable = true, length = 20)
	private String codigoBarra;

	@Size(message = "O campo imagem deve ter no máximo {max} caracteres", min = 0, max = 200)
	@Column(name = "imagem", nullable = true, length = 200)
	private String imagem;

	@Column(name = "localizacao", nullable = true)
	private String localizacao;

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "produtoExemplar")
	private Set<ItemVenda> itemVendas;

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "produtoExemplar")
	private Set<ProdutoMovimentacao> produtoMovimentacoes;

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "produtoExemplar")
	private Set<ItemCompra> itemCompras;

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumns({ @JoinColumn(name = "idUnidadeMedida", referencedColumnName = "idUnidadeMedida", nullable = false) })
	@ForeignKey(name = "FK_ProdutoExemplar_UnidadeMedida")
	private UnidadeMedida unidadeMedida;

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumns({ @JoinColumn(name = "idProduto", referencedColumnName = "idProduto", nullable = false) })
	@ForeignKey(name = "FK_ProdutoExemplar_Produto")
	private Produto produto;
        
      //gets and sets
}
@Entity
@Table(name = "UnidadeMedida")
public class UnidadeMedida implements Serializable{

	private static final long serialVersionUID = 1L;
	@Id
	@GeneratedValue
	@Column(name="idUnidadeMedida", nullable=false)
	private Short idUnidadeMedida;

	@Size(message="O campo sigla deve ter no máximo {max} caracteres",min = 0,max = 10)
	@NotNull(message="O campo sigla não pode ser nulo.")
	@NotEmpty(message="O campo sigla deve ser preenchido.")
	@Column(name="sigla", nullable=false,length = 10)
	private String sigla;

	@Size(message="O campo descricao deve ter no máximo {max} caracteres",min = 0,max = 40)
	@NotNull(message="O campo descricao não pode ser nulo.")
	@NotEmpty(message="O campo descricao deve ser preenchido.")
	@Column(name="descricao", nullable=false,length = 40)
	private String descricao;

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "unidadeMedida")
	private List<ProdutoExemplar> produtoExemplares;

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "unidadeMedidaDestino")
	private List<UnidadeMedidaConversao> unidadeMedidaDestinoConversoes;

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "unidadeMedidaOrigem")
	private List<UnidadeMedidaConversao> unidadeMedidaOrigemConversoes;

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "unidadeMedida")
	private List<Produto> produtos;

       //gets and sets
}