/**
* Get a specification using the specified parameters.
*
* @param user The recipient's user
* @param subject The subject of the message
* @param text The text of the message
* @return The specification
*/
public static Specification<MessageEntity> findReceivedMessagesForUser(
final UserEntity user,
@Nullable final String subject,
@Nullable final String text
) {
return (final Root<MessageEntity> root, final CriteriaQuery<?> cq, final CriteriaBuilder cb) -> {
final List<Predicate> predicates = new ArrayList<>();
predicates.add(cb.equal(root.get(MessageEntity_.recipient), user));
if (Optional.ofNullable(subject).isPresent()) {
predicates.add(cb.like(root.get(MessageEntity_.subject), "%" + subject + "%"));
}
if (Optional.ofNullable(text).isPresent()) {
predicates.add(cb.like(root.get(MessageEntity_.text), "%" + text + "%"));
}
predicates.add(cb.isTrue(root.get(MessageEntity_.isVisibleForRecipient)));
return cb.and(predicates.toArray(new Predicate[predicates.size()]));
};
}
MessageSpecs.java 文件源码
java
阅读 37
收藏 0
点赞 0
评论 0
项目:REST-Web-Services
作者:
评论列表
文章目录