test_list=['Python','Jupyter Notebook','Spyder',]
subs=['Py','Jupyter','Spy','VisualStudio']
set_sub=set(subs)
tem=[]
for elem in subs:
for n in test_list:
if elem not in n:
continue
tem.append(elem)
print(list(set(tem)),'\n\n')
set_tem=set(tem)
print(set_sub - set_tem )
list_diff=list(set_sub - set_tem)
for s in list_diff:
test_list.append(s)
print(test_list)
我有这样的东西。这是实体:
public static Specification<A> findAbyBname(String input) {
return new Specification<A>() {
@Override
public Predicate toPredicate(Root<A> root,CriteriaQuery<?> cq,CriteriaBuilder cb) {
cq.distinct(true);
Join<A,AB> AjoinAB = root.joinList(A_.AB_LIST,JoinType.LEFT);
Join<AB,B> ABjoinB = AjoinAB.join(AB_.B,JoinType.LEFT);
return cb.equal(ABjoinB.get(B_.NAME),input);
}
};
}
,
下面我们可以做的是,我们应该有两个谓词,然后对这两个谓词进行测试
public static Specification<Item> findByCustomer(User user) {
return (root,criteriaQuery,criteriaBuilder) -> {
root.fetch(User_.address,JoinType.LEFT);
Predicate predicateForEndDate
= criteriaBuilder.equal(root.get(User_.end_date),null);
Predicate predicateForUser
= criteriaBuilder.equal(root.get(User_.id),1);
return criteriaBuilder.and(predicateForEndDate,predicateForUser)
};
}
本文链接:https://www.f2er.com/2678964.html