Procházet zdrojové kódy

Merge branch 'feature/listEqualAndLessThanOrEqualTo' into 'wrdp'

增加方法listEqualAndLessThanOrEqualTo

See merge request o2oa/o2oa!2870
o2null před 5 roky
rodič
revize
a8f273e981

+ 12 - 0
o2server/x_base_core_project/src/main/java/com/x/base/core/container/EntityManagerContainer.java

@@ -542,6 +542,18 @@ public class EntityManagerContainer extends EntityManagerContainerBasic {
 		return new ArrayList<T>(query.getResultList());
 	}
 
+	public <T extends JpaObject> List<T> listEqualAndLessThanOrEqualTo(Class<T> cls, String attribute,
+			Object value, String otherAttribute, Object otherValue) throws Exception {
+		EntityManager em = this.get(cls);
+		CriteriaBuilder cb = em.getCriteriaBuilder();
+		CriteriaQuery<T> cq = cb.createQuery(cls);
+		Root<T> root = cq.from(cls);
+		Predicate p = cb.equal(root.get(attribute), value);
+		p = cb.and(p, cb.lessThanOrEqualTo(root.get(otherAttribute), (Comparable) otherValue));
+		List<T> os = em.createQuery(cq.select(root).where(p)).getResultList();
+		return new ArrayList<>(os);
+	}
+
 	public <T extends JpaObject, W extends Object> List<T> listBetweenAndEqual(Class<T> cls, String attribute,
 			Object start, Object end, String equalAttribute, Object equalValue) throws Exception {
 		EntityManager em = this.get(cls);