Consulta com chave composta

Tenho a classe Funcionario e a classe FuncionarioId com as chaves:


@Entity(name="tbl_funcionario")
public class Funcionario {

	@EmbeddedId
	private FuncionarioId id;
	
	@Column(name="nome", length=60, nullable=false)
	private String nome;
	
	@Column(name="usuario", length=60, nullable=false)
	private String usuario;
	
	@Column(name="senha", length=60, nullable=false)
	private String senha;
	
	@Column(name="email", length=200, nullable=false)
	private String email;
	
	public String getNome() {
	
		return nome;
	}
	
	public FuncionarioId getId() {
		return id;
	}

	public void setId(FuncionarioId id) {
		this.id = id;
	}

	public void setNome(String nome) {
	
		this.nome = nome;
	}
	
	public String getUsuario() {
	
		return usuario;
	}
	
	public void setUsuario(String usuario) {
	
		this.usuario = usuario;
	}
	
	public String getSenha() {
	
		return senha;
	}
	
	public void setSenha(String senha) {
	
		this.senha = senha;
	}
	
	public String getEmail() {
	
		return email;
	}
	
	public void setEmail(String email) {
	
		this.email = email;
	}
}

@Embeddable
public class FuncionarioId implements Serializable {

	private static final long serialVersionUID = 1L;

	private String rg;
	
	private String cpf;

	public String getRg() {
		
		return rg;
	}

	public void setRg(String rg) {
		
		this.rg = rg;
	}

	public String getCpf() {
		
		return cpf;
	}

	public void setCpf(String cpf) {
		
		this.cpf = cpf;
	}
}

Estou tentando montar uma pesquisa por RG e CPF, mas não estou conseguindo e já procurei ajuda em vários lugares e não consigo. Se puderem me ajudar com dicas de como elaborar a consulta ficarei muito grato.


public class Busca {

	public static void main(String[] args) {
		
		SessionFactory sf = HibernateUtil.getSessionFactory();
		
		Session s = sf.openSession();
		
		Transaction t = s.beginTransaction();
		
		
		
		t.commit();
		
		s.close();
	}
}

Obrigado

Pelos dois ao mesmo tempo?

ou se estiver com hibernate

public Funcionario buscar(Funcionario funcionario) throws HibernateException { session = HibernateUtil.getSession(); Criteria c = session.createCriteria(classe); c.add(Restrictions.eq("rg", funcionario.getRg())); c.add(Restrictions.eq("cpf", funcionario.getCpf())); funcionario = (Funcionario)c.uniqueResult(); session.close(); return funcionario; }