Let us say I've this entity (for Hibernate):

@Entity
public class Person {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    Long id;

    @CollectionOfElements
    @IndexColumn("phones_index")
    Set<String> phones;
}

For instance, I wish to get cases of Person where their phones contain "555-1234". How do i perform a query about this? I'm searching for something such as:

session.createCriteria(Person.class)./*something*/.add(Restrictions./*something*/"555-1234").list();
String phone = "555-1234";
Person person= (Person) session.createQuery("from Person p join p.phones pl where pl = :phone").setString("phone", phone).uniqueResult();

I believe you would like Hibernate's Restrictions.in() method, that takes a house title because the first argument, and only an assortment or Assortment of objects because the second.

See also: The Javadoc

Edit: Upon re-reading through your question, I believe you should use the relevant Restrictions techniques, particularly, eq:

session.createCriteria(Person.class).add(Restrictions.eq("phones", "555-1234")).list();