Hibernate critères de requête pour la Collecte de la Table?

J'ai Entité suivante

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

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "rule_id")
    private Long id;

    @ElementCollection(targetClass = Action.class)


     @CollectionTable(name = "rule_action", joinColumns = @JoinColumn(name = "rule_id"))
        @Enumerated(value = EnumType.STRING)
        @Column(name = "action")
        private Set<Action> actions;

//After editing as per jbrookover's suggestion adding a new mapping
       @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
       @JoinColumn(name = "rule_id")
       private Set<RuleAction> ruleActions;


    }

Suite à mon Action est

public enum Action {
    PHONE, EMAIL, POSTAL,PHONE_OR_EMAIL, SMS;
}

Je veux extraire une Liste de règle, ayant ensemble particulier d'actions
Je suis en train d'essayer cette

 DetachedCriteria criteria = DetachedCriteria.forClass(Rule.class,"rule");
 criteria = criteria.createAlias("rule.actions", "action");
 criteria.add(Restrictions.in("action.name",actionSet));
 return getHibernateTemplate().findByCriteria(criteria);

Mais se
org.mise en veille prolongée.MappingException: la collection n'était pas une association: exception..

MODIFIER
Ainsi, après les conseils de jbrookover j'ai essayé d'aller pour une classe wrapper pour l'Action nommée RuleAction et a été en mesure de eshtablish la relation oneToMany, Aussi j'ai modifié la requête comme suit

    Set<Action> act = new HashSet<Action>();
    act.add(Action.EMAIL);
    act.add(Action.POSTAL);

    DetachedCriteria criteria = DetachedCriteria.forClass(Rule.class);
    criteria.add(Restrictions.eq(SUPPORT_LANG, Language.valueOf("EN")))
            .createCriteria("ruleActions").add(Restrictions.in("action",act));
    return getHibernateTemplate().findByCriteria(criteria);

Mais c'est le retour de moi tout le règle avec e-MAIL ou POSTALE, mais ce que je veux, c'est tout, l'état d'avoir des emails et POSTALES à la fois Merci de m'aider dans la modification de la requête.

OriginalL'auteur Anupam Gupta | 2011-10-07