CriteriaBuilder, como faço para pegar somente o ano na consulta


public List<ItaliaInvoice> listInvoice(Integer first, Integer size, Integer nf, Integer year) {	
		
		CriteriaBuilder cb = entityManager.getCriteriaBuilder();
		CriteriaQuery<ItaliaInvoice> query = cb.createQuery(ItaliaInvoice.class);			
		Root<ItaliaInvoice> root = query.from(ItaliaInvoice.class);	
		Predicate conjunction = cb.conjunction();
	
		
		//colocar os filtros

		if (nf != null) {
			conjunction = cb.and(conjunction, cb.equal(root.<Integer>get("id"), nf));
		}
		
		if (year != null) {
			conjunction = cb.and(conjunction, cb.currentDate(root.<Calendar>get("date"), year)));
                        //AQUI NÃO ESTOU SABENDO USAR A SINTAXE CORRETA PARA PEGAR APENAS O ANO NO CAMPO DATA
		}


		query.select(root)
		.where(conjunction)
		.orderBy(cb.desc(root.<String>get("id")));	 	
	return entityManager.createQuery(query)
		.setFirstResult(first)
		.setMaxResults(size)
		.getResultList();
		
	}