Hibernate Query Language : Delete HQL

hibernate
  • Turgay Can
  • Tarih

    04 Jun, 2012
  • Yorum

    0
  • Görüntüleme

    2099
  • İndirme

    0

Hibernate Query Language : Delete HQL

Main class

  /////////////////////////////////////////////////////////////////////////
        import java.util.*;

        import java.sql.*;
        import org.hibernate.*;
        import org.hibernate.criterion.*;

        public class Main {

      public static void main(String[] args) {
            HibernateUtil.setup("create table Supplier ( id int, name VARCHAR);");
            HibernateUtil.setup("create table Product ( id int, name VARCHAR,
`` description VARCHAR, price double,supplierId int);");

            prepareData();
        Session session = HibernateUtil.currentSession();

            String hql = "delete from Product where name = :name";
            Query query = session.createQuery(hql);
            query.setString("name","Product 1");
            int rowCount = query.executeUpdate();
            System.out.println("Rows affected: " + rowCount);

            //See the results of the update
            query = session.createQuery("from Product");
            List results = query.list();            

            displayProductsList(results);            


            HibernateUtil.checkData("select * from Supplier");
            HibernateUtil.checkData("select * from Product");

      }

        static public void displayProductsList(List list){
            Iterator iter = list.iterator();
            if (!iter.hasNext()){
                System.out.println("No products to display.");
                return;
            }
            while (iter.hasNext()) {
                Product product = (Product) iter.next();
                String msg = product.getSupplier().getName() + "\t";
                msg += product.getName() + "\t";
                msg += product.getPrice() + "\t";
                msg += product.getDescription();
                System.out.println(msg);
            }
        }



  private static void prepareData(){
        Session session = HibernateUtil.currentSession();

        Supplier supplier1 = new Supplier();
        supplier1.setName("Supplier Name 1");
        session.save(supplier1);

        Supplier supplier2 = new Supplier();
        supplier2.setName("Supplier Name 2");
        session.save(supplier2);        

        Product product1 = new Product("Product 1","Name for Product 1", 2.0);
        product1.setSupplier(supplier1);
        supplier1.getProducts().add(product1);
        session.save(product1);

        Product product12 = new Product("Product 2","Name for Product 2", 22.0);
        product12.setSupplier(supplier1);
        supplier1.getProducts().add(product12);        
        session.save(product12);

        Product product2 = new Product("Product 3", "Name for Product 3", 30.0);
        product2.setSupplier(supplier2);
        supplier2.getProducts().add(product2);
        session.save(product2);

        session.flush();
        HibernateUtil.closeSession();
  }
}

Product.java

/////////////////////////////////////////////////////////////////////////
public class Product
{
    private int id;
    private Supplier supplier;

    private String name;
    private String description;
    private double price;

    public Product()
    {
        super();
    }

    public Product(String name, String description, double price)
    {
        super();
        this.name = name;
        this.description = description;
        this.price = price;
    }

    public String getDescription()
    {
        return description;
    }
    public void setDescription(String description)
    {
        this.description = description;
    }
    public int getId()
    {
        return id;
    }
    public void setId(int id)
    {
        this.id = id;
    }
    public String getName()
    {
        return name;
    }
    public void setName(String name)
    {
        this.name = name;
    }
}

Supplier.java

      public Supplier getSupplier()
        {
            return supplier;
        }
        public void setSupplier(Supplier supplier)
        {
            this.supplier = supplier;
        }

        public double getPrice()
        {
            return price;
        }
        public void setPrice(double price)
    {
        this.price = price;
    }
}

Configuration.xml

/////////////////////////////////////////////////////////////////////////
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
    "-//Hibernate/Hibernate Configuration DTD//EN"
    "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
        <!-- Database connection settings -->
        <property name="connection.driver_class">org.hsqldb.jdbcDriver</property>
        <property name="connection.url">jdbc:hsqldb:data/tutorial</property>
        <property name="connection.username">sa</property>
        <property name="connection.password"></property>

        <!-- JDBC connection pool (use the built-in) -->
        <property name="connection.pool_size">1</property>

        <!-- SQL dialect -->
        <property name="dialect">org.hibernate.dialect.HSQLDialect</property>

        <!-- Echo all executed SQL to stdout -->
        <property name="show_sql">true</property>

        <!-- Mapping files -->
        <mapping resource="Product.hbm.xml"/>
        <mapping resource="Supplier.hbm.xml"/>
    </session-factory>
</hibernate-configuration>

0 Yorum..

Yorum yapmak için "Giriş yapın" yada "Misafir üye" olarak yorum yapabilirsiniz.

Yorum Yap