Using IS EMPTY should work (I would favor a JPQL syntax):
SELECT u FROM User u WHERE u.status = 1 AND u.appointments IS EMPTY
If it doesn’t, please show the generated SQL.
References
- Hibernate Core Reference Guide
- 14.10. Expressions
- JPA 1.0 specification
- Section 4.6.11 “Empty Collection Comparison Expressions”