Type safety is the core principle of Querydsl. Queries are constructed based on generated query types that reflect the properties of your project's domain types. Also function invocations are constructed in a fully manner.
Consistency is another important principle. The query paths and operations are the same in all implementations and also the Query interfaces are similar.