diff --git a/persistence-modules/spring-hibernate-5/src/main/java/com/baeldung/hibernate/criteria/view/ApplicationView.java b/persistence-modules/spring-hibernate-5/src/main/java/com/baeldung/hibernate/criteria/view/ApplicationView.java index 72d4dea377..c7ca9f1ffd 100644 --- a/persistence-modules/spring-hibernate-5/src/main/java/com/baeldung/hibernate/criteria/view/ApplicationView.java +++ b/persistence-modules/spring-hibernate-5/src/main/java/com/baeldung/hibernate/criteria/view/ApplicationView.java @@ -162,6 +162,25 @@ public class ApplicationView { return betweenItems; } + // To get records having itemName in 'Skate Board', 'Paint' and 'Glue' + public String[] inCriteria() { + final Session session = HibernateUtil.getHibernateSession(); + final CriteriaBuilder cb = session.getCriteriaBuilder(); + final CriteriaQuery cr = cb.createQuery(Item.class); + final Root root = cr.from(Item.class); + cr.select(root) + .where(root.get("itemName").in("Skate Board", "Paint", "Glue")); + Query query = session.createQuery(cr); + final List inItemsList = query.getResultList(); + final String inItems[] = new String[inItemsList.size()]; + for (int i = 0; i < inItemsList.size(); i++) { + inItems[i] = inItemsList.get(i) + .getItemName(); + } + session.close(); + return inItems; + } + // To check if the given property is null public String[] nullCriteria() { final Session session = HibernateUtil.getHibernateSession(); diff --git a/persistence-modules/spring-hibernate-5/src/test/java/com/baeldung/hibernate/criteria/HibernateCriteriaIntegrationTest.java b/persistence-modules/spring-hibernate-5/src/test/java/com/baeldung/hibernate/criteria/HibernateCriteriaIntegrationTest.java index 7d95e0f342..a1f88f3387 100644 --- a/persistence-modules/spring-hibernate-5/src/test/java/com/baeldung/hibernate/criteria/HibernateCriteriaIntegrationTest.java +++ b/persistence-modules/spring-hibernate-5/src/test/java/com/baeldung/hibernate/criteria/HibernateCriteriaIntegrationTest.java @@ -189,6 +189,18 @@ public class HibernateCriteriaIntegrationTest { assertArrayEquals(expectedPriceBetweenItems, av.betweenCriteria()); } + @Test + public void inCriteriaQuery() { + final Session session = HibernateUtil.getHibernateSession(); + final List expectedInList = session.createQuery("From Item where itemName in ('Skate Board', 'Paint', 'Glue')").list(); + final String expectedNameInItems[] = new String[expectedInList.size()]; + for (int i = 0; i < expectedInList.size(); i++) { + expectedNameInItems[i] = expectedInList.get(i).getItemName(); + } + session.close(); + assertArrayEquals(expectedNameInItems, av.inCriteria()); + } + @Test public void givenNewItemPrice_whenCriteriaUpdate_thenReturnAffectedResult() {