Hibernate critères de JOINTURE + condition supplémentaire (avec clause) ne fonctionne pas avec plusieurs-à-plusieurs association

J'essaye d'ajouter une condition supplémentaire à la clause de Jointure de l'utilisation d'hibernate critères. En fait, il ya certaines méthodes, qui permet de le faire:

createCriteria(String associationPath, String alias, int joinType, Criterion withClause)

et

createAlias(String associationPath, String alias, int joinType, Criterion withClause) 

Qu'ils fonctionnent correctement avec un-à-un et un-à-plusieurs relations. Mais quand je suis en train de les utiliser avec des entités ayant plusieurs-à-plusieurs relations, j'obtiens le message d'erreur suivant:

Caused by: org.postgresql.util.PSQLException: No value specified for parameter 1.

Quelqu'un peut-il m'aider?
Le impoli exemple ci-dessous:

@Entity
public class Person {

@Id
@GeneratedValue
private Long id;

@ManyToMany
private Set<PersonName> names;

}

public class PersonName {

@Id
@GeneratedValue
private Long id;

@Column
private String name;

}
public class PersonDao extends HibernateDaoSupport {

public List<Person> findByName() {
    Criteria criteria = getSession().createCriteria(Person.class, "p");
    criteria.createCriteria("p.names", "names", JoinType.INNER_JOIN, Restrictions.eq("name", "John"));
    return criteria.list();
}
}

la Requête générée est

select this_.id as y0_ from person this_ 
    inner join debtor_info this_1_ on this_.id=this_1_.id 
    left outer join person_person_name personname3_ on this_.id=personname3_.person_id and ( name1_.name=? ) 
    left outer join person_name name1_ on personname3_.person_name_id=name1_.id and ( name1_.name=? )

Comme vous pouvez le voir, la condition de jointure est ajouté deux fois, ce qui est évidemment incorrect

Merci d'avance.

BTW, je suis en utilisant postgresql 9, Hibernate 3.6.3

Il semble que Hibernate bug. Voulez-vous une jointure interne ou un left join. Parce que si vous voulez une jointure interne, la clause pourrait être transformé en une clause where.
J'ai mis à gauche joindre manuellement, mais il n'a vraiment pas d'importance ce type de jointure que j'utilise, l'erreur se reproduit.
J'ai créé un défaut dans hibernate Jira. Voyons ce que vont-ils jour hibernate.onjira.com/browse/HHH-7355
Avez-vous jamais résoudre ce problème?
Est-ce que qqn sait comment le résoudre?

OriginalL'auteur Vladimir Lugovsky | 2012-05-27