Java tutorial
/* * Copyright 2000-2013 Enonic AS * http://www.enonic.com/license */ package com.enonic.cms.store.dao; import java.util.Collection; import java.util.List; import org.hibernate.Query; import org.hibernate.Session; import com.enonic.cms.framework.hibernate.support.InClauseBuilder; import com.enonic.cms.framework.hibernate.support.SelectBuilder; import com.enonic.cms.core.content.category.CategoryEntity; import com.enonic.cms.core.content.category.CategoryKey; class FindCategoryByKeysQuerier { private Session hibernateSession; FindCategoryByKeysQuerier(Session hibernateSession) { this.hibernateSession = hibernateSession; } List<CategoryEntity> queryCategories(final Collection<CategoryKey> categoryKeys) { final SelectBuilder hqlQuery = new SelectBuilder(0); hqlQuery.addSelect("c"); hqlQuery.addFromTable(CategoryEntity.class.getName(), "c", SelectBuilder.NO_JOIN, null); hqlQuery.addFilter("AND", new InClauseBuilder<CategoryKey>("c.key", categoryKeys) { public void appendValue(StringBuffer sql, CategoryKey value) { sql.append(value.toString()); } }.toString()); Query compiled = hibernateSession.createQuery(hqlQuery.toString()); compiled.setReadOnly(true); compiled.setCacheable(false); //noinspection unchecked return compiled.list(); } }