HQL - Hibernate 3

Eu tenho a seguinte função:

function(String condicao, Object[] values, Type[] types)
.
.
Query query = session.createQuery("FROM " + getClasseVO().getName() + " as obj WHERE "+condicao).setParameters(values,types);
.
.

Depois chamo a funcao assim:

res = function(“obj.login = :log and obj.senha = :sen”,
new Object[] { log, sen }, new Type[] { Hibernate.STRING,
Hibernate.STRING });

Da o seguinte erro:"Not all named parameters have been set:"
O q tem de errado?

Use assim,

public List find(String condicao, Object[] values){ Query query = session.createQuery("from " + getClasseVO().getName() + " as obj where "+condicao) .setParameters(values); }

Depois chame a funcao assim:

res = find("obj.login = ? and obj.senha = ?", new Object[] { log, sen });
Mas melhorando a resposta. NÃO use desta forma hibernate. Gavin King deve estar com uma dor monstra no fígado depois dessa.