It appears that `lhs` and `rhs` were reversed in 25924d89. https://github.com/spring-projects/spring-data-jpa/blob/master/src/main/java/org/springframework/data/jpa/domain/SpecificationComposition.java#L54 This causes `spec1.and(spec2)` to result in `spec2 and spec1`.