// Path: chapter09/src/main/java/com/packtpub/pf/blueprint/persistence/HibernateUtil.java
// public class HibernateUtil {
// 
//     private static final SessionFactory sessionFactory = buildSessionFactory();
// 
//     private static SessionFactory buildSessionFactory() throws HibernateException {
//         Configuration configuration = new Configuration().configure();
//         // configures settings from hibernate.cfg.xml
// 
//         StandardServiceRegistryBuilder serviceRegistryBuilder = new StandardServiceRegistryBuilder();
// 
//         // If you miss the below line then it will complain about a missing dialect setting
//         serviceRegistryBuilder.applySettings(configuration.getProperties());
// 
//         ServiceRegistry serviceRegistry = serviceRegistryBuilder.build();
//         return configuration.buildSessionFactory(serviceRegistry);
//     }
// 
//     public static SessionFactory getSessionFactory() {
//         return sessionFactory;
//     }
// 
//     public static void shutdown() {
//         // Close caches and connection pools
//         getSessionFactory().close();
//     }
// 
// }
// 
// Path: chapter06/src/main/java/com/packtpub/pf/blueprint/persistence/entity/Category.java
// @Entity
// @Table
// public class Category implements java.io.Serializable {
// 
//     @Id
//     @GeneratedValue
//     private Long id;
// 
//     private String name;
// 
//     private Long parentId;
// 
//     @OneToMany(mappedBy = "category")
//     private Set<Product> products = new HashSet<>();
// 
//     public Category() {
//         this.parentId = 0L;
//     }
// 
//     public Category(String name) {
//         this.name = name;
//         this.parentId = 0L;
//     }
// 
//     public Category(String name, Long parentId) {
//         this.name = name;
//         this.parentId = parentId;
//     }
// 
//     public Long getId() {
//         return id;
//     }
// 
//     public void setId(Long id) {
//         this.id = id;
//     }
// 
//     public String getName() {
//         return name;
//     }
// 
//     public void setName(String name) {
//         this.name = name;
//     }
// 
//     public Long getParentId() {
//         return parentId;
//     }
// 
//     public void setParentId(Long parentId) {
//         this.parentId = parentId;
//     }
// 
//     public Set<Product> getProducts() {
//         return products;
//     }
// 
//     public void setProducts(Set<Product> product) {
//         this.products = product;
//     }
// 
//     @Override
//     public String toString() {
//         return "Category{" +
//                 "id=" + id +
//                 ", name='" + name + '\'' +
//                 ", parentId=" + parentId +
//                 '}';
//     }
// }


import com.packtpub.pf.blueprint.persistence.HibernateUtil;
import com.packtpub.pf.blueprint.persistence.entity.Category;
import org.hibernate.Session;
import java.util.List;
package com.pocketpub.pfbp.test;



/**
 * Created with IntelliJ IDEA.
 * User: psramkumar
 * Date: 2/6/14
 * Time: 7:44 PM
 * To change this template use File | Settings | File Templates.
 */
public class HibernateUtilTest {

    public static void main(String[] args) {
        System.out.println("Testing Hibernate Utility Class");
        Session session = HibernateUtil.getSessionFactory().openSession();

        session.beginTransaction();
// Path: chapter09/src/main/java/com/packtpub/pf/blueprint/persistence/HibernateUtil.java
// public class HibernateUtil {
// 
//     private static final SessionFactory sessionFactory = buildSessionFactory();
// 
//     private static SessionFactory buildSessionFactory() throws HibernateException {
//         Configuration configuration = new Configuration().configure();
//         // configures settings from hibernate.cfg.xml
// 
//         StandardServiceRegistryBuilder serviceRegistryBuilder = new StandardServiceRegistryBuilder();
// 
//         // If you miss the below line then it will complain about a missing dialect setting
//         serviceRegistryBuilder.applySettings(configuration.getProperties());
// 
//         ServiceRegistry serviceRegistry = serviceRegistryBuilder.build();
//         return configuration.buildSessionFactory(serviceRegistry);
//     }
// 
//     public static SessionFactory getSessionFactory() {
//         return sessionFactory;
//     }
// 
//     public static void shutdown() {
//         // Close caches and connection pools
//         getSessionFactory().close();
//     }
// 
// }
// 
// Path: chapter06/src/main/java/com/packtpub/pf/blueprint/persistence/entity/Category.java
// @Entity
// @Table
// public class Category implements java.io.Serializable {
// 
//     @Id
//     @GeneratedValue
//     private Long id;
// 
//     private String name;
// 
//     private Long parentId;
// 
//     @OneToMany(mappedBy = "category")
//     private Set<Product> products = new HashSet<>();
// 
//     public Category() {
//         this.parentId = 0L;
//     }
// 
//     public Category(String name) {
//         this.name = name;
//         this.parentId = 0L;
//     }
// 
//     public Category(String name, Long parentId) {
//         this.name = name;
//         this.parentId = parentId;
//     }
// 
//     public Long getId() {
//         return id;
//     }
// 
//     public void setId(Long id) {
//         this.id = id;
//     }
// 
//     public String getName() {
//         return name;
//     }
// 
//     public void setName(String name) {
//         this.name = name;
//     }
// 
//     public Long getParentId() {
//         return parentId;
//     }
// 
//     public void setParentId(Long parentId) {
//         this.parentId = parentId;
//     }
// 
//     public Set<Product> getProducts() {
//         return products;
//     }
// 
//     public void setProducts(Set<Product> product) {
//         this.products = product;
//     }
// 
//     @Override
//     public String toString() {
//         return "Category{" +
//                 "id=" + id +
//                 ", name='" + name + '\'' +
//                 ", parentId=" + parentId +
//                 '}';
//     }
// }


// Path: chapter06/src/test/java/com/pocketpub/pfbp/test/HibernateUtilTest.java
import com.packtpub.pf.blueprint.persistence.HibernateUtil;
import com.packtpub.pf.blueprint.persistence.entity.Category;
import org.hibernate.Session;
import java.util.List;

package com.pocketpub.pfbp.test;



/**
 * Created with IntelliJ IDEA.
 * User: psramkumar
 * Date: 2/6/14
 * Time: 7:44 PM
 * To change this template use File | Settings | File Templates.
 */
public class HibernateUtilTest {

    public static void main(String[] args) {
        System.out.println("Testing Hibernate Utility Class");
        Session session = HibernateUtil.getSessionFactory().openSession();

        session.beginTransaction();
        Category cat = new Category();