<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java%2FHibernate%2FCriteria_Aggregates</id>
		<title>Java/Hibernate/Criteria Aggregates - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java%2FHibernate%2FCriteria_Aggregates"/>
		<link rel="alternate" type="text/html" href="http://jexp.ru/index.php?title=Java/Hibernate/Criteria_Aggregates&amp;action=history"/>
		<updated>2026-04-07T07:47:47Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://jexp.ru/index.php?title=Java/Hibernate/Criteria_Aggregates&amp;diff=7941&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://jexp.ru/index.php?title=Java/Hibernate/Criteria_Aggregates&amp;diff=7941&amp;oldid=prev"/>
				<updated>2010-06-01T06:51:49Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 06:51, 1 июня 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://jexp.ru/index.php?title=Java/Hibernate/Criteria_Aggregates&amp;diff=7940&amp;oldid=prev</id>
		<title> в 18:01, 31 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://jexp.ru/index.php?title=Java/Hibernate/Criteria_Aggregates&amp;diff=7940&amp;oldid=prev"/>
				<updated>2010-05-31T18:01:45Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Criteria: Aggregates Criteria Min Max Average ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
/////////////////////////////////////////////////////////////////////////&lt;br /&gt;
&lt;br /&gt;
package com.hibernatebook.criteria;&lt;br /&gt;
import org.hibernate.Session;&lt;br /&gt;
import org.hibernate.SessionFactory;&lt;br /&gt;
import org.hibernate.cfg.Configuration;&lt;br /&gt;
public class HibernateHelper {&lt;br /&gt;
   private HibernateHelper() {&lt;br /&gt;
   }&lt;br /&gt;
   public static Session getSession() {&lt;br /&gt;
      Session session = (Session)HibernateHelper.session.get();&lt;br /&gt;
      if( session == null ) {&lt;br /&gt;
         session = sessionFactory.openSession();&lt;br /&gt;
         HibernateHelper.session.set(session);&lt;br /&gt;
      }&lt;br /&gt;
      return session;&lt;br /&gt;
   }&lt;br /&gt;
   &lt;br /&gt;
   private static final ThreadLocal session = new ThreadLocal();&lt;br /&gt;
   private static final ThreadLocal transaction = new ThreadLocal();   &lt;br /&gt;
   private static final SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();   &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/////////////////////////////////////////////////////////////////////////&lt;br /&gt;
import java.util.*;&lt;br /&gt;
import java.sql.*;&lt;br /&gt;
import org.hibernate.*;&lt;br /&gt;
import org.hibernate.criterion.*;&lt;br /&gt;
public class Main {&lt;br /&gt;
  &lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    HibernateUtil.setup(&amp;quot;create table Supplier ( id int, name VARCHAR);&amp;quot;);&lt;br /&gt;
    HibernateUtil.setup(&amp;quot;create table Product ( id int, name VARCHAR, description VARCHAR, price double,supplierId int);&amp;quot;);&lt;br /&gt;
    &lt;br /&gt;
    prepareData();&lt;br /&gt;
    Session session = HibernateUtil.currentSession();&lt;br /&gt;
    &lt;br /&gt;
        Criteria crit = session.createCriteria(Product.class);&lt;br /&gt;
        ProjectionList projList = Projections.projectionList();&lt;br /&gt;
        projList.add(Projections.max(&amp;quot;price&amp;quot;));&lt;br /&gt;
        projList.add(Projections.min(&amp;quot;price&amp;quot;));&lt;br /&gt;
        projList.add(Projections.avg(&amp;quot;price&amp;quot;));&lt;br /&gt;
        projList.add(Projections.countDistinct(&amp;quot;description&amp;quot;));&lt;br /&gt;
        crit.setProjection(projList);&lt;br /&gt;
        List results = crit.list();&lt;br /&gt;
        displayObjectsList(results);&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
        HibernateUtil.checkData(&amp;quot;select * from Supplier&amp;quot;);&lt;br /&gt;
        HibernateUtil.checkData(&amp;quot;select * from Product&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
    static public void displayObjectsList(List list)&lt;br /&gt;
    {&lt;br /&gt;
        Iterator iter = list.iterator();&lt;br /&gt;
        if (!iter.hasNext())&lt;br /&gt;
        {&lt;br /&gt;
            System.out.println(&amp;quot;No objects to display.&amp;quot;);&lt;br /&gt;
            return;&lt;br /&gt;
        }&lt;br /&gt;
        while (iter.hasNext())&lt;br /&gt;
        {&lt;br /&gt;
            System.out.println(&amp;quot;New object&amp;quot;);&lt;br /&gt;
            Object[] obj = (Object[]) iter.next();&lt;br /&gt;
            for (int i=0;i&amp;lt;obj.length;i++)&lt;br /&gt;
            {&lt;br /&gt;
                System.out.println(obj[i]);&lt;br /&gt;
            }&lt;br /&gt;
            &lt;br /&gt;
            &lt;br /&gt;
        }&lt;br /&gt;
    }       &lt;br /&gt;
&lt;br /&gt;
  private static void prepareData(){&lt;br /&gt;
        Session session = HibernateUtil.currentSession();&lt;br /&gt;
        Supplier supplier1 = new Supplier();&lt;br /&gt;
        supplier1.setName(&amp;quot;Supplier Name 1&amp;quot;);&lt;br /&gt;
        session.save(supplier1);&lt;br /&gt;
        &lt;br /&gt;
        Supplier supplier2 = new Supplier();&lt;br /&gt;
        supplier2.setName(&amp;quot;Supplier Name 2&amp;quot;);&lt;br /&gt;
        session.save(supplier2);        &lt;br /&gt;
        &lt;br /&gt;
        Product product1 = new Product(&amp;quot;Product 1&amp;quot;,&amp;quot;Name for Product 1&amp;quot;, 2.0);&lt;br /&gt;
        product1.setSupplier(supplier1);&lt;br /&gt;
        supplier1.getProducts().add(product1);&lt;br /&gt;
        session.save(product1);&lt;br /&gt;
        &lt;br /&gt;
        Product product12 = new Product(&amp;quot;Product 2&amp;quot;,&amp;quot;Name for Product 2&amp;quot;, 22.0);&lt;br /&gt;
        product12.setSupplier(supplier1);&lt;br /&gt;
        supplier1.getProducts().add(product12);        &lt;br /&gt;
        session.save(product12);&lt;br /&gt;
        &lt;br /&gt;
        Product product2 = new Product(&amp;quot;Product 3&amp;quot;, &amp;quot;Name for Product 3&amp;quot;, 30.0);&lt;br /&gt;
        product2.setSupplier(supplier2);&lt;br /&gt;
        supplier2.getProducts().add(product2);&lt;br /&gt;
        session.save(product2);&lt;br /&gt;
        &lt;br /&gt;
        session.flush();&lt;br /&gt;
        HibernateUtil.closeSession();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/////////////////////////////////////////////////////////////////////////&lt;br /&gt;
&lt;br /&gt;
public class Product&lt;br /&gt;
{&lt;br /&gt;
    private int id;&lt;br /&gt;
    private Supplier supplier;&lt;br /&gt;
    &lt;br /&gt;
    private String name;&lt;br /&gt;
    private String description;&lt;br /&gt;
    private double price;&lt;br /&gt;
    &lt;br /&gt;
    public Product()&lt;br /&gt;
    {&lt;br /&gt;
        super();&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public Product(String name, String description, double price)&lt;br /&gt;
    {&lt;br /&gt;
        super();&lt;br /&gt;
        this.name = name;&lt;br /&gt;
        this.description = description;&lt;br /&gt;
        this.price = price;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public String getDescription()&lt;br /&gt;
    {&lt;br /&gt;
        return description;&lt;br /&gt;
    }&lt;br /&gt;
    public void setDescription(String description)&lt;br /&gt;
    {&lt;br /&gt;
        this.description = description;&lt;br /&gt;
    }&lt;br /&gt;
    public int getId()&lt;br /&gt;
    {&lt;br /&gt;
        return id;&lt;br /&gt;
    }&lt;br /&gt;
    public void setId(int id)&lt;br /&gt;
    {&lt;br /&gt;
        this.id = id;&lt;br /&gt;
    }&lt;br /&gt;
    public String getName()&lt;br /&gt;
    {&lt;br /&gt;
        return name;&lt;br /&gt;
    }&lt;br /&gt;
    public void setName(String name)&lt;br /&gt;
    {&lt;br /&gt;
        this.name = name;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    public Supplier getSupplier()&lt;br /&gt;
    {&lt;br /&gt;
        return supplier;&lt;br /&gt;
    }&lt;br /&gt;
    public void setSupplier(Supplier supplier)&lt;br /&gt;
    {&lt;br /&gt;
        this.supplier = supplier;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public double getPrice()&lt;br /&gt;
    {&lt;br /&gt;
        return price;&lt;br /&gt;
    }&lt;br /&gt;
    public void setPrice(double price)&lt;br /&gt;
    {&lt;br /&gt;
        this.price = price;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
/////////////////////////////////////////////////////////////////////////&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE hibernate-mapping&lt;br /&gt;
   PUBLIC &amp;quot;-//Hibernate/Hibernate Mapping DTD//EN&amp;quot;&lt;br /&gt;
   &amp;quot;http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;hibernate-mapping&amp;gt;&lt;br /&gt;
   &amp;lt;class name=&amp;quot;Supplier&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;id name=&amp;quot;id&amp;quot; type=&amp;quot;int&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;generator class=&amp;quot;increment&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/id&amp;gt;&lt;br /&gt;
      &amp;lt;property name=&amp;quot;name&amp;quot; type=&amp;quot;string&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;bag name=&amp;quot;products&amp;quot; inverse=&amp;quot;true&amp;quot; cascade=&amp;quot;all,delete-orphan&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;key column=&amp;quot;supplierId&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;one-to-many class=&amp;quot;Product&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/bag&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;/class&amp;gt;&lt;br /&gt;
&amp;lt;/hibernate-mapping&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/////////////////////////////////////////////////////////////////////////&lt;br /&gt;
&lt;br /&gt;
import java.util.ArrayList;&lt;br /&gt;
import java.util.List;&lt;br /&gt;
public class Supplier&lt;br /&gt;
{&lt;br /&gt;
    private int id;&lt;br /&gt;
    private String name;&lt;br /&gt;
    private List products = new ArrayList();&lt;br /&gt;
    &lt;br /&gt;
    public int getId()&lt;br /&gt;
    {&lt;br /&gt;
        return id;&lt;br /&gt;
    }&lt;br /&gt;
    public void setId(int id)&lt;br /&gt;
    {&lt;br /&gt;
        this.id = id;&lt;br /&gt;
    }&lt;br /&gt;
    public String getName()&lt;br /&gt;
    {&lt;br /&gt;
        return name;&lt;br /&gt;
    }&lt;br /&gt;
    public void setName(String name)&lt;br /&gt;
    {&lt;br /&gt;
        this.name = name;&lt;br /&gt;
    }&lt;br /&gt;
    public List getProducts()&lt;br /&gt;
    {&lt;br /&gt;
        return products;&lt;br /&gt;
    }&lt;br /&gt;
    public void setProducts(List products)&lt;br /&gt;
    {&lt;br /&gt;
        this.products = products;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
/////////////////////////////////////////////////////////////////////////&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE hibernate-configuration PUBLIC&lt;br /&gt;
    &amp;quot;-//Hibernate/Hibernate Configuration DTD//EN&amp;quot;&lt;br /&gt;
    &amp;quot;http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;hibernate-configuration&amp;gt;&lt;br /&gt;
    &amp;lt;session-factory&amp;gt;&lt;br /&gt;
        &amp;lt;!-- Database connection settings --&amp;gt;&lt;br /&gt;
        &amp;lt;property name=&amp;quot;connection.driver_class&amp;quot;&amp;gt;org.hsqldb.jdbcDriver&amp;lt;/property&amp;gt;&lt;br /&gt;
        &amp;lt;property name=&amp;quot;connection.url&amp;quot;&amp;gt;jdbc:hsqldb:data/tutorial&amp;lt;/property&amp;gt;&lt;br /&gt;
        &amp;lt;property name=&amp;quot;connection.username&amp;quot;&amp;gt;sa&amp;lt;/property&amp;gt;&lt;br /&gt;
        &amp;lt;property name=&amp;quot;connection.password&amp;quot;&amp;gt;&amp;lt;/property&amp;gt;&lt;br /&gt;
        &amp;lt;!-- JDBC connection pool (use the built-in) --&amp;gt;&lt;br /&gt;
        &amp;lt;property name=&amp;quot;connection.pool_size&amp;quot;&amp;gt;1&amp;lt;/property&amp;gt;&lt;br /&gt;
        &amp;lt;!-- SQL dialect --&amp;gt;&lt;br /&gt;
        &amp;lt;property name=&amp;quot;dialect&amp;quot;&amp;gt;org.hibernate.dialect.HSQLDialect&amp;lt;/property&amp;gt;&lt;br /&gt;
        &amp;lt;!-- Echo all executed SQL to stdout --&amp;gt;&lt;br /&gt;
        &amp;lt;property name=&amp;quot;show_sql&amp;quot;&amp;gt;true&amp;lt;/property&amp;gt;&lt;br /&gt;
        &amp;lt;!-- Mapping files --&amp;gt;&lt;br /&gt;
        &amp;lt;mapping resource=&amp;quot;Product.hbm.xml&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;mapping resource=&amp;quot;Supplier.hbm.xml&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/session-factory&amp;gt;&lt;br /&gt;
&amp;lt;/hibernate-configuration&amp;gt;&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;/div&gt;</summary>
			</entry>

	</feed>