JPA 中使用CriteriaBuilder 中的and 和 or 遇到的问题

我想实现的sql : firstname = ?0 and lastname = ?1) or (firstname = ?2 and lastname = ?3)

 

我的代码:

cb.or(
    cb.and(
        cb.equal(userJoin.get(User_.NAME), userName1),
        cb.equal(userJoin.get(User_.NAME), userName2)
    ),
    cb.and(
        cb.equal(userJoin.get(User_.NAME), userName3),
        cb.equal(userJoin.get(User_.NAME), userName4)
    )
)

以上代码产生的sql:

firstname = ?0 and lastname = ?1 or firstname = ?2 and lastname = ?3

导致了目前条件筛选不正确

请问您解决了吗?   这两种sql有何不同呢?

好问题

请问解决了吗?

你好,可以分享下如何实现的吗

请问解决了吗?也遇到这样的需求。如果可以的话,协助下,谢谢!