Hi Emmanuel,
I've found:
http://www.hibernate.org/hib_docs/v3/ap ... ang.String)
and
hibernate-3.1/test/org/hibernate/test/legacy/MasterDetailTest.java
If I'm reading that correctly, session.createFilter() seems to apply to the collection after the objects have been fetched from the database.
I'm not sure how I would hook that up to the lazily-fetched collection such that user.getContacts() returns only the non-deleted items and even if I figure that out, I would rather filter at the SQL layer. In the real-world scenario there might be thousands of records marked as deleted (or archived or expired or whatever) and relatively few that are "live". I wouldn't want to pay the cost to fetch a pile of objects into the JVM just to have them filtered out.
(Thanks for being patient. I've been doing Hibernate for years and never had a need to touch filtering until recently.)
Thanks,
James