formatting work
This commit is contained in:
@@ -4,78 +4,78 @@ import java.io.Serializable;
|
||||
|
||||
public class Item implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
private Integer itemId;
|
||||
private String itemName;
|
||||
private String itemDescription;
|
||||
private Integer itemPrice;
|
||||
private static final long serialVersionUID = 1L;
|
||||
private Integer itemId;
|
||||
private String itemName;
|
||||
private String itemDescription;
|
||||
private Integer itemPrice;
|
||||
|
||||
// constructors
|
||||
public Item() {
|
||||
// constructors
|
||||
public Item() {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public Item(final Integer itemId, final String itemName, final String itemDescription) {
|
||||
super();
|
||||
this.itemId = itemId;
|
||||
this.itemName = itemName;
|
||||
this.itemDescription = itemDescription;
|
||||
}
|
||||
public Item(final Integer itemId, final String itemName, final String itemDescription) {
|
||||
super();
|
||||
this.itemId = itemId;
|
||||
this.itemName = itemName;
|
||||
this.itemDescription = itemDescription;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
final int prime = 31;
|
||||
int result = 1;
|
||||
result = prime * result + ((itemId == null) ? 0 : itemId.hashCode());
|
||||
return result;
|
||||
}
|
||||
@Override
|
||||
public int hashCode() {
|
||||
final int prime = 31;
|
||||
int result = 1;
|
||||
result = prime * result + ((itemId == null) ? 0 : itemId.hashCode());
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(final Object obj) {
|
||||
if (this == obj)
|
||||
return true;
|
||||
if (obj == null)
|
||||
return false;
|
||||
if (getClass() != obj.getClass())
|
||||
return false;
|
||||
final Item other = (Item) obj;
|
||||
if (itemId == null) {
|
||||
if (other.itemId != null)
|
||||
return false;
|
||||
} else if (!itemId.equals(other.itemId))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
@Override
|
||||
public boolean equals(final Object obj) {
|
||||
if (this == obj)
|
||||
return true;
|
||||
if (obj == null)
|
||||
return false;
|
||||
if (getClass() != obj.getClass())
|
||||
return false;
|
||||
final Item other = (Item) obj;
|
||||
if (itemId == null) {
|
||||
if (other.itemId != null)
|
||||
return false;
|
||||
} else if (!itemId.equals(other.itemId))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
public Integer getItemId() {
|
||||
return itemId;
|
||||
}
|
||||
public Integer getItemId() {
|
||||
return itemId;
|
||||
}
|
||||
|
||||
public void setItemId(final Integer itemId) {
|
||||
this.itemId = itemId;
|
||||
}
|
||||
public void setItemId(final Integer itemId) {
|
||||
this.itemId = itemId;
|
||||
}
|
||||
|
||||
public String getItemName() {
|
||||
return itemName;
|
||||
}
|
||||
public String getItemName() {
|
||||
return itemName;
|
||||
}
|
||||
|
||||
public void setItemName(final String itemName) {
|
||||
this.itemName = itemName;
|
||||
}
|
||||
public void setItemName(final String itemName) {
|
||||
this.itemName = itemName;
|
||||
}
|
||||
|
||||
public String getItemDescription() {
|
||||
return itemDescription;
|
||||
}
|
||||
public String getItemDescription() {
|
||||
return itemDescription;
|
||||
}
|
||||
|
||||
public Integer getItemPrice() {
|
||||
return itemPrice;
|
||||
}
|
||||
public Integer getItemPrice() {
|
||||
return itemPrice;
|
||||
}
|
||||
|
||||
public void setItemPrice(final Integer itemPrice) {
|
||||
this.itemPrice = itemPrice;
|
||||
}
|
||||
public void setItemPrice(final Integer itemPrice) {
|
||||
this.itemPrice = itemPrice;
|
||||
}
|
||||
|
||||
public void setItemDescription(final String itemDescription) {
|
||||
this.itemDescription = itemDescription;
|
||||
}
|
||||
public void setItemDescription(final String itemDescription) {
|
||||
this.itemDescription = itemDescription;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,16 +5,15 @@ import org.hibernate.SessionFactory;
|
||||
import org.hibernate.cfg.Configuration;
|
||||
|
||||
public class HibernateUtil {
|
||||
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
public static Session getHibernateSession() {
|
||||
|
||||
final SessionFactory sf = new Configuration()
|
||||
.configure("criteria.cfg.xml").buildSessionFactory();
|
||||
final SessionFactory sf = new Configuration().configure("criteria.cfg.xml").buildSessionFactory();
|
||||
|
||||
// factory = new Configuration().configure().buildSessionFactory();
|
||||
final Session session = sf.openSession();
|
||||
return session;
|
||||
// factory = new Configuration().configure().buildSessionFactory();
|
||||
final Session session = sf.openSession();
|
||||
return session;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -26,228 +26,226 @@ import com.baeldung.hibernate.criteria.util.HibernateUtil;
|
||||
|
||||
public class ApplicationView {
|
||||
|
||||
// default Constructor
|
||||
public ApplicationView() {
|
||||
// default Constructor
|
||||
public ApplicationView() {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public boolean checkIfCriteriaTimeLower() {
|
||||
final Session session = HibernateUtil.getHibernateSession();
|
||||
final Criteria cr = session.createCriteria(Item.class);
|
||||
Transaction tx = null;
|
||||
|
||||
// calculate the time taken by criteria
|
||||
final long startTimeCriteria = System.nanoTime();
|
||||
cr.add(Restrictions.like("itemName", "%item One%"));
|
||||
final List results = cr.list();
|
||||
final long endTimeCriteria = System.nanoTime();
|
||||
final long durationCriteria = (endTimeCriteria - startTimeCriteria) / 1000;
|
||||
public boolean checkIfCriteriaTimeLower() {
|
||||
final Session session = HibernateUtil.getHibernateSession();
|
||||
final Criteria cr = session.createCriteria(Item.class);
|
||||
Transaction tx = null;
|
||||
|
||||
// calculate the time taken by HQL
|
||||
final long startTimeHQL = System.nanoTime();
|
||||
tx = session.beginTransaction();
|
||||
final List items = session.createQuery("FROM Item where itemName like '%item One%'").list();
|
||||
final long endTimeHQL = System.nanoTime();
|
||||
final long durationHQL = (endTimeHQL - startTimeHQL) / 1000;
|
||||
// calculate the time taken by criteria
|
||||
final long startTimeCriteria = System.nanoTime();
|
||||
cr.add(Restrictions.like("itemName", "%item One%"));
|
||||
final List results = cr.list();
|
||||
final long endTimeCriteria = System.nanoTime();
|
||||
final long durationCriteria = (endTimeCriteria - startTimeCriteria) / 1000;
|
||||
|
||||
if (durationCriteria > durationHQL) {
|
||||
return false;
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
// calculate the time taken by HQL
|
||||
final long startTimeHQL = System.nanoTime();
|
||||
tx = session.beginTransaction();
|
||||
final List items = session.createQuery("FROM Item where itemName like '%item One%'").list();
|
||||
final long endTimeHQL = System.nanoTime();
|
||||
final long durationHQL = (endTimeHQL - startTimeHQL) / 1000;
|
||||
|
||||
// To get items having price more than 1000
|
||||
public String[] greaterThanCriteria() {
|
||||
final Session session = HibernateUtil.getHibernateSession();
|
||||
final Criteria cr = session.createCriteria(Item.class);
|
||||
cr.add(Restrictions.gt("itemPrice", 1000));
|
||||
final List<Item> greaterThanItemsList = cr.list();
|
||||
final String greaterThanItems[] = new String[greaterThanItemsList.size()];
|
||||
for (int i = 0; i < greaterThanItemsList.size(); i++) {
|
||||
greaterThanItems[i] = greaterThanItemsList.get(i).getItemName();
|
||||
}
|
||||
session.close();
|
||||
return greaterThanItems;
|
||||
}
|
||||
if (durationCriteria > durationHQL) {
|
||||
return false;
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
// To get items having price less than 1000
|
||||
public String[] lessThanCriteria() {
|
||||
final Session session = HibernateUtil.getHibernateSession();
|
||||
final Criteria cr = session.createCriteria(Item.class);
|
||||
cr.add(Restrictions.lt("itemPrice", 1000));
|
||||
final List<Item> lessThanItemsList = cr.list();
|
||||
final String lessThanItems[] = new String[lessThanItemsList.size()];
|
||||
for (int i = 0; i < lessThanItemsList.size(); i++) {
|
||||
lessThanItems[i] = lessThanItemsList.get(i).getItemName();
|
||||
}
|
||||
session.close();
|
||||
return lessThanItems;
|
||||
}
|
||||
// To get items having price more than 1000
|
||||
public String[] greaterThanCriteria() {
|
||||
final Session session = HibernateUtil.getHibernateSession();
|
||||
final Criteria cr = session.createCriteria(Item.class);
|
||||
cr.add(Restrictions.gt("itemPrice", 1000));
|
||||
final List<Item> greaterThanItemsList = cr.list();
|
||||
final String greaterThanItems[] = new String[greaterThanItemsList.size()];
|
||||
for (int i = 0; i < greaterThanItemsList.size(); i++) {
|
||||
greaterThanItems[i] = greaterThanItemsList.get(i).getItemName();
|
||||
}
|
||||
session.close();
|
||||
return greaterThanItems;
|
||||
}
|
||||
|
||||
// To get items whose Name start with Chair
|
||||
public String[] likeCriteria() {
|
||||
final Session session = HibernateUtil.getHibernateSession();
|
||||
// To get items having price less than 1000
|
||||
public String[] lessThanCriteria() {
|
||||
final Session session = HibernateUtil.getHibernateSession();
|
||||
final Criteria cr = session.createCriteria(Item.class);
|
||||
cr.add(Restrictions.lt("itemPrice", 1000));
|
||||
final List<Item> lessThanItemsList = cr.list();
|
||||
final String lessThanItems[] = new String[lessThanItemsList.size()];
|
||||
for (int i = 0; i < lessThanItemsList.size(); i++) {
|
||||
lessThanItems[i] = lessThanItemsList.get(i).getItemName();
|
||||
}
|
||||
session.close();
|
||||
return lessThanItems;
|
||||
}
|
||||
|
||||
final Criteria cr = session.createCriteria(Item.class);
|
||||
cr.add(Restrictions.like("itemName", "%chair%"));
|
||||
final List<Item> likeItemsList = cr.list();
|
||||
final String likeItems[] = new String[likeItemsList.size()];
|
||||
for (int i = 0; i < likeItemsList.size(); i++) {
|
||||
likeItems[i] = likeItemsList.get(i).getItemName();
|
||||
}
|
||||
session.close();
|
||||
return likeItems;
|
||||
}
|
||||
// To get items whose Name start with Chair
|
||||
public String[] likeCriteria() {
|
||||
final Session session = HibernateUtil.getHibernateSession();
|
||||
|
||||
// Case sensitive search
|
||||
public String[] likeCaseCriteria() {
|
||||
final Session session = HibernateUtil.getHibernateSession();
|
||||
final Criteria cr = session.createCriteria(Item.class);
|
||||
cr.add(Restrictions.ilike("itemName", "%Chair%"));
|
||||
final List<Item> ilikeItemsList = cr.list();
|
||||
final String ilikeItems[] = new String[ilikeItemsList.size()];
|
||||
for (int i = 0; i < ilikeItemsList.size(); i++) {
|
||||
ilikeItems[i] = ilikeItemsList.get(i).getItemName();
|
||||
}
|
||||
session.close();
|
||||
return ilikeItems;
|
||||
}
|
||||
final Criteria cr = session.createCriteria(Item.class);
|
||||
cr.add(Restrictions.like("itemName", "%chair%"));
|
||||
final List<Item> likeItemsList = cr.list();
|
||||
final String likeItems[] = new String[likeItemsList.size()];
|
||||
for (int i = 0; i < likeItemsList.size(); i++) {
|
||||
likeItems[i] = likeItemsList.get(i).getItemName();
|
||||
}
|
||||
session.close();
|
||||
return likeItems;
|
||||
}
|
||||
|
||||
// To get records having itemPrice in between 100 and 200
|
||||
public String[] betweenCriteria() {
|
||||
final Session session = HibernateUtil.getHibernateSession();
|
||||
final Criteria cr = session.createCriteria(Item.class);
|
||||
// To get items having price more than 1000
|
||||
cr.add(Restrictions.between("itemPrice", 100, 200));
|
||||
final List<Item> betweenItemsList = cr.list();
|
||||
final String betweenItems[] = new String[betweenItemsList.size()];
|
||||
for (int i = 0; i < betweenItemsList.size(); i++) {
|
||||
betweenItems[i] = betweenItemsList.get(i).getItemName();
|
||||
}
|
||||
session.close();
|
||||
return betweenItems;
|
||||
}
|
||||
// Case sensitive search
|
||||
public String[] likeCaseCriteria() {
|
||||
final Session session = HibernateUtil.getHibernateSession();
|
||||
final Criteria cr = session.createCriteria(Item.class);
|
||||
cr.add(Restrictions.ilike("itemName", "%Chair%"));
|
||||
final List<Item> ilikeItemsList = cr.list();
|
||||
final String ilikeItems[] = new String[ilikeItemsList.size()];
|
||||
for (int i = 0; i < ilikeItemsList.size(); i++) {
|
||||
ilikeItems[i] = ilikeItemsList.get(i).getItemName();
|
||||
}
|
||||
session.close();
|
||||
return ilikeItems;
|
||||
}
|
||||
|
||||
// To check if the given property is null
|
||||
public String[] nullCriteria() {
|
||||
final Session session = HibernateUtil.getHibernateSession();
|
||||
final Criteria cr = session.createCriteria(Item.class);
|
||||
cr.add(Restrictions.isNull("itemDescription"));
|
||||
final List<Item> nullItemsList = cr.list();
|
||||
final String nullDescItems[] = new String[nullItemsList.size()];
|
||||
for (int i = 0; i < nullItemsList.size(); i++) {
|
||||
nullDescItems[i] = nullItemsList.get(i).getItemName();
|
||||
}
|
||||
session.close();
|
||||
return nullDescItems;
|
||||
}
|
||||
// To get records having itemPrice in between 100 and 200
|
||||
public String[] betweenCriteria() {
|
||||
final Session session = HibernateUtil.getHibernateSession();
|
||||
final Criteria cr = session.createCriteria(Item.class);
|
||||
// To get items having price more than 1000
|
||||
cr.add(Restrictions.between("itemPrice", 100, 200));
|
||||
final List<Item> betweenItemsList = cr.list();
|
||||
final String betweenItems[] = new String[betweenItemsList.size()];
|
||||
for (int i = 0; i < betweenItemsList.size(); i++) {
|
||||
betweenItems[i] = betweenItemsList.get(i).getItemName();
|
||||
}
|
||||
session.close();
|
||||
return betweenItems;
|
||||
}
|
||||
|
||||
// To check if the given property is not null
|
||||
public String[] notNullCriteria() {
|
||||
final Session session = HibernateUtil.getHibernateSession();
|
||||
final Criteria cr = session.createCriteria(Item.class);
|
||||
cr.add(Restrictions.isNotNull("itemDescription"));
|
||||
final List<Item> notNullItemsList = cr.list();
|
||||
final String notNullDescItems[] = new String[notNullItemsList.size()];
|
||||
for (int i = 0; i < notNullItemsList.size(); i++) {
|
||||
notNullDescItems[i] = notNullItemsList.get(i).getItemName();
|
||||
}
|
||||
session.close();
|
||||
return notNullDescItems;
|
||||
}
|
||||
// To check if the given property is null
|
||||
public String[] nullCriteria() {
|
||||
final Session session = HibernateUtil.getHibernateSession();
|
||||
final Criteria cr = session.createCriteria(Item.class);
|
||||
cr.add(Restrictions.isNull("itemDescription"));
|
||||
final List<Item> nullItemsList = cr.list();
|
||||
final String nullDescItems[] = new String[nullItemsList.size()];
|
||||
for (int i = 0; i < nullItemsList.size(); i++) {
|
||||
nullDescItems[i] = nullItemsList.get(i).getItemName();
|
||||
}
|
||||
session.close();
|
||||
return nullDescItems;
|
||||
}
|
||||
|
||||
// Adding more than one expression in one cr
|
||||
public String[] twoCriteria() {
|
||||
final Session session = HibernateUtil.getHibernateSession();
|
||||
final Criteria cr = session.createCriteria(Item.class);
|
||||
cr.add(Restrictions.isNull("itemDescription"));
|
||||
cr.add(Restrictions.like("itemName", "chair%"));
|
||||
final List<Item> notNullItemsList = cr.list();
|
||||
final String notNullDescItems[] = new String[notNullItemsList.size()];
|
||||
for (int i = 0; i < notNullItemsList.size(); i++) {
|
||||
notNullDescItems[i] = notNullItemsList.get(i).getItemName();
|
||||
}
|
||||
session.close();
|
||||
return notNullDescItems;
|
||||
}
|
||||
// To check if the given property is not null
|
||||
public String[] notNullCriteria() {
|
||||
final Session session = HibernateUtil.getHibernateSession();
|
||||
final Criteria cr = session.createCriteria(Item.class);
|
||||
cr.add(Restrictions.isNotNull("itemDescription"));
|
||||
final List<Item> notNullItemsList = cr.list();
|
||||
final String notNullDescItems[] = new String[notNullItemsList.size()];
|
||||
for (int i = 0; i < notNullItemsList.size(); i++) {
|
||||
notNullDescItems[i] = notNullItemsList.get(i).getItemName();
|
||||
}
|
||||
session.close();
|
||||
return notNullDescItems;
|
||||
}
|
||||
|
||||
// To get items matching with the above defined conditions joined
|
||||
// with Logical AND
|
||||
public String[] andLogicalCriteria() {
|
||||
final Session session = HibernateUtil.getHibernateSession();
|
||||
final Criteria cr = session.createCriteria(Item.class);
|
||||
final Criterion greaterThanPrice = Restrictions.gt("itemPrice", 1000);
|
||||
final Criterion chairItems = Restrictions.like("itemName", "Chair%");
|
||||
final LogicalExpression andExample = Restrictions.and(greaterThanPrice, chairItems);
|
||||
cr.add(andExample);
|
||||
final List<Item> andItemsList = cr.list();
|
||||
final String andItems[] = new String[andItemsList.size()];
|
||||
for (int i = 0; i < andItemsList.size(); i++) {
|
||||
andItems[i] = andItemsList.get(i).getItemName();
|
||||
}
|
||||
session.close();
|
||||
return andItems;
|
||||
}
|
||||
// Adding more than one expression in one cr
|
||||
public String[] twoCriteria() {
|
||||
final Session session = HibernateUtil.getHibernateSession();
|
||||
final Criteria cr = session.createCriteria(Item.class);
|
||||
cr.add(Restrictions.isNull("itemDescription"));
|
||||
cr.add(Restrictions.like("itemName", "chair%"));
|
||||
final List<Item> notNullItemsList = cr.list();
|
||||
final String notNullDescItems[] = new String[notNullItemsList.size()];
|
||||
for (int i = 0; i < notNullItemsList.size(); i++) {
|
||||
notNullDescItems[i] = notNullItemsList.get(i).getItemName();
|
||||
}
|
||||
session.close();
|
||||
return notNullDescItems;
|
||||
}
|
||||
|
||||
// To get items matching with the above defined conditions joined
|
||||
// with Logical OR
|
||||
public String[] orLogicalCriteria() {
|
||||
final Session session = HibernateUtil.getHibernateSession();
|
||||
final Criteria cr = session.createCriteria(Item.class);
|
||||
final Criterion greaterThanPrice = Restrictions.gt("itemPrice", 1000);
|
||||
final Criterion chairItems = Restrictions.like("itemName", "Chair%");
|
||||
final LogicalExpression orExample = Restrictions.or(greaterThanPrice, chairItems);
|
||||
cr.add(orExample);
|
||||
final List<Item> orItemsList = cr.list();
|
||||
final String orItems[] = new String[orItemsList.size()];
|
||||
for (int i = 0; i < orItemsList.size(); i++) {
|
||||
orItems[i] = orItemsList.get(i).getItemName();
|
||||
}
|
||||
session.close();
|
||||
return orItems;
|
||||
}
|
||||
// To get items matching with the above defined conditions joined
|
||||
// with Logical AND
|
||||
public String[] andLogicalCriteria() {
|
||||
final Session session = HibernateUtil.getHibernateSession();
|
||||
final Criteria cr = session.createCriteria(Item.class);
|
||||
final Criterion greaterThanPrice = Restrictions.gt("itemPrice", 1000);
|
||||
final Criterion chairItems = Restrictions.like("itemName", "Chair%");
|
||||
final LogicalExpression andExample = Restrictions.and(greaterThanPrice, chairItems);
|
||||
cr.add(andExample);
|
||||
final List<Item> andItemsList = cr.list();
|
||||
final String andItems[] = new String[andItemsList.size()];
|
||||
for (int i = 0; i < andItemsList.size(); i++) {
|
||||
andItems[i] = andItemsList.get(i).getItemName();
|
||||
}
|
||||
session.close();
|
||||
return andItems;
|
||||
}
|
||||
|
||||
// Sorting example
|
||||
public String[] sortingCriteria() {
|
||||
final Session session = HibernateUtil.getHibernateSession();
|
||||
final Criteria cr = session.createCriteria(Item.class);
|
||||
cr.addOrder(Order.asc("itemName"));
|
||||
cr.addOrder(Order.desc("itemPrice")).list();
|
||||
final List<Item> sortedItemsList = cr.list();
|
||||
final String sortedItems[] = new String[sortedItemsList.size()];
|
||||
for (int i = 0; i < sortedItemsList.size(); i++) {
|
||||
sortedItems[i] = sortedItemsList.get(i).getItemName();
|
||||
}
|
||||
session.close();
|
||||
return sortedItems;
|
||||
}
|
||||
// To get items matching with the above defined conditions joined
|
||||
// with Logical OR
|
||||
public String[] orLogicalCriteria() {
|
||||
final Session session = HibernateUtil.getHibernateSession();
|
||||
final Criteria cr = session.createCriteria(Item.class);
|
||||
final Criterion greaterThanPrice = Restrictions.gt("itemPrice", 1000);
|
||||
final Criterion chairItems = Restrictions.like("itemName", "Chair%");
|
||||
final LogicalExpression orExample = Restrictions.or(greaterThanPrice, chairItems);
|
||||
cr.add(orExample);
|
||||
final List<Item> orItemsList = cr.list();
|
||||
final String orItems[] = new String[orItemsList.size()];
|
||||
for (int i = 0; i < orItemsList.size(); i++) {
|
||||
orItems[i] = orItemsList.get(i).getItemName();
|
||||
}
|
||||
session.close();
|
||||
return orItems;
|
||||
}
|
||||
|
||||
// Set projections Row Count
|
||||
public Long[] projectionRowCount() {
|
||||
final Session session = HibernateUtil.getHibernateSession();
|
||||
final List<Long> itemProjected = session.createCriteria(Item.class).setProjection(Projections.rowCount())
|
||||
.list();
|
||||
final Long projectedRowCount[] = new Long[itemProjected.size()];
|
||||
for (int i = 0; i < itemProjected.size(); i++) {
|
||||
projectedRowCount[i] = itemProjected.get(i);
|
||||
}
|
||||
session.close();
|
||||
return projectedRowCount;
|
||||
}
|
||||
// Sorting example
|
||||
public String[] sortingCriteria() {
|
||||
final Session session = HibernateUtil.getHibernateSession();
|
||||
final Criteria cr = session.createCriteria(Item.class);
|
||||
cr.addOrder(Order.asc("itemName"));
|
||||
cr.addOrder(Order.desc("itemPrice")).list();
|
||||
final List<Item> sortedItemsList = cr.list();
|
||||
final String sortedItems[] = new String[sortedItemsList.size()];
|
||||
for (int i = 0; i < sortedItemsList.size(); i++) {
|
||||
sortedItems[i] = sortedItemsList.get(i).getItemName();
|
||||
}
|
||||
session.close();
|
||||
return sortedItems;
|
||||
}
|
||||
|
||||
// Set projections average of itemPrice
|
||||
public Double[] projectionAverage() {
|
||||
final Session session = HibernateUtil.getHibernateSession();
|
||||
final List avgItemPriceList = session.createCriteria(Item.class)
|
||||
.setProjection(Projections.projectionList().add(Projections.avg("itemPrice"))).list();
|
||||
// Set projections Row Count
|
||||
public Long[] projectionRowCount() {
|
||||
final Session session = HibernateUtil.getHibernateSession();
|
||||
final List<Long> itemProjected = session.createCriteria(Item.class).setProjection(Projections.rowCount()).list();
|
||||
final Long projectedRowCount[] = new Long[itemProjected.size()];
|
||||
for (int i = 0; i < itemProjected.size(); i++) {
|
||||
projectedRowCount[i] = itemProjected.get(i);
|
||||
}
|
||||
session.close();
|
||||
return projectedRowCount;
|
||||
}
|
||||
|
||||
final Double avgItemPrice[] = new Double[avgItemPriceList.size()];
|
||||
for (int i = 0; i < avgItemPriceList.size(); i++) {
|
||||
avgItemPrice[i] = (Double) avgItemPriceList.get(i);
|
||||
}
|
||||
session.close();
|
||||
return avgItemPrice;
|
||||
}
|
||||
// Set projections average of itemPrice
|
||||
public Double[] projectionAverage() {
|
||||
final Session session = HibernateUtil.getHibernateSession();
|
||||
final List avgItemPriceList = session.createCriteria(Item.class).setProjection(Projections.projectionList().add(Projections.avg("itemPrice"))).list();
|
||||
|
||||
final Double avgItemPrice[] = new Double[avgItemPriceList.size()];
|
||||
for (int i = 0; i < avgItemPriceList.size(); i++) {
|
||||
avgItemPrice[i] = (Double) avgItemPriceList.get(i);
|
||||
}
|
||||
session.close();
|
||||
return avgItemPrice;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -5,54 +5,54 @@ import java.io.Serializable;
|
||||
import java.sql.Date;
|
||||
|
||||
@Entity
|
||||
@Table (name = "USER_ORDER")
|
||||
public class OrderDetail implements Serializable{
|
||||
@Table(name = "USER_ORDER")
|
||||
public class OrderDetail implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@Id
|
||||
@GeneratedValue
|
||||
@Column(name="ORDER_ID")
|
||||
private Long orderId;
|
||||
|
||||
public OrderDetail(){
|
||||
}
|
||||
|
||||
public OrderDetail(Date orderDate, String orderDesc) {
|
||||
super();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
final int prime = 31;
|
||||
int result = 1;
|
||||
result = prime * result + ((orderId == null) ? 0 : orderId.hashCode());
|
||||
return result;
|
||||
}
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
if (this == obj)
|
||||
return true;
|
||||
if (obj == null)
|
||||
return false;
|
||||
if (getClass() != obj.getClass())
|
||||
return false;
|
||||
OrderDetail other = (OrderDetail) obj;
|
||||
if (orderId == null) {
|
||||
if (other.orderId != null)
|
||||
return false;
|
||||
} else if (!orderId.equals(other.orderId))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
public Long getOrderId() {
|
||||
return orderId;
|
||||
}
|
||||
public void setOrderId(Long orderId) {
|
||||
this.orderId = orderId;
|
||||
}
|
||||
@Id
|
||||
@GeneratedValue
|
||||
@Column(name = "ORDER_ID")
|
||||
private Long orderId;
|
||||
|
||||
public OrderDetail() {
|
||||
}
|
||||
|
||||
public OrderDetail(Date orderDate, String orderDesc) {
|
||||
super();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
final int prime = 31;
|
||||
int result = 1;
|
||||
result = prime * result + ((orderId == null) ? 0 : orderId.hashCode());
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
if (this == obj)
|
||||
return true;
|
||||
if (obj == null)
|
||||
return false;
|
||||
if (getClass() != obj.getClass())
|
||||
return false;
|
||||
OrderDetail other = (OrderDetail) obj;
|
||||
if (orderId == null) {
|
||||
if (other.orderId != null)
|
||||
return false;
|
||||
} else if (!orderId.equals(other.orderId))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public Long getOrderId() {
|
||||
return orderId;
|
||||
}
|
||||
|
||||
public void setOrderId(Long orderId) {
|
||||
this.orderId = orderId;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -6,66 +6,66 @@ import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
@Entity
|
||||
@Table (name = "USER")
|
||||
@Table(name = "USER")
|
||||
public class UserEager implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@Id
|
||||
@GeneratedValue
|
||||
@Column(name="USER_ID")
|
||||
private Long userId;
|
||||
|
||||
@OneToMany(fetch = FetchType.EAGER, mappedBy = "user")
|
||||
private Set<OrderDetail> orderDetail = new HashSet();
|
||||
|
||||
public UserEager() {
|
||||
}
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
public UserEager(final Long userId) {
|
||||
super();
|
||||
this.userId = userId;
|
||||
}
|
||||
@Id
|
||||
@GeneratedValue
|
||||
@Column(name = "USER_ID")
|
||||
private Long userId;
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
final int prime = 31;
|
||||
int result = 1;
|
||||
result = prime * result + ((userId == null) ? 0 : userId.hashCode());
|
||||
return result;
|
||||
}
|
||||
@OneToMany(fetch = FetchType.EAGER, mappedBy = "user")
|
||||
private Set<OrderDetail> orderDetail = new HashSet();
|
||||
|
||||
@Override
|
||||
public boolean equals(final Object obj) {
|
||||
if (this == obj)
|
||||
return true;
|
||||
if (obj == null)
|
||||
return false;
|
||||
if (getClass() != obj.getClass())
|
||||
return false;
|
||||
final UserEager other = (UserEager) obj;
|
||||
if (userId == null) {
|
||||
if (other.userId != null)
|
||||
return false;
|
||||
} else if (!userId.equals(other.userId))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
public UserEager() {
|
||||
}
|
||||
|
||||
public Long getUserId() {
|
||||
return userId;
|
||||
}
|
||||
public UserEager(final Long userId) {
|
||||
super();
|
||||
this.userId = userId;
|
||||
}
|
||||
|
||||
public void setUserId(final Long userId) {
|
||||
this.userId = userId;
|
||||
}
|
||||
@Override
|
||||
public int hashCode() {
|
||||
final int prime = 31;
|
||||
int result = 1;
|
||||
result = prime * result + ((userId == null) ? 0 : userId.hashCode());
|
||||
return result;
|
||||
}
|
||||
|
||||
public Set<OrderDetail> getOrderDetail() {
|
||||
return orderDetail;
|
||||
}
|
||||
@Override
|
||||
public boolean equals(final Object obj) {
|
||||
if (this == obj)
|
||||
return true;
|
||||
if (obj == null)
|
||||
return false;
|
||||
if (getClass() != obj.getClass())
|
||||
return false;
|
||||
final UserEager other = (UserEager) obj;
|
||||
if (userId == null) {
|
||||
if (other.userId != null)
|
||||
return false;
|
||||
} else if (!userId.equals(other.userId))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
public void setOrderDetail(Set<OrderDetail> orderDetail) {
|
||||
this.orderDetail = orderDetail;
|
||||
}
|
||||
public Long getUserId() {
|
||||
return userId;
|
||||
}
|
||||
|
||||
public void setUserId(final Long userId) {
|
||||
this.userId = userId;
|
||||
}
|
||||
|
||||
public Set<OrderDetail> getOrderDetail() {
|
||||
return orderDetail;
|
||||
}
|
||||
|
||||
public void setOrderDetail(Set<OrderDetail> orderDetail) {
|
||||
this.orderDetail = orderDetail;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -6,67 +6,66 @@ import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
@Entity
|
||||
@Table (name = "USER")
|
||||
@Table(name = "USER")
|
||||
public class UserLazy implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@Id
|
||||
@GeneratedValue
|
||||
@Column(name="USER_ID")
|
||||
private Long userId;
|
||||
|
||||
@OneToMany(fetch = FetchType.LAZY, mappedBy = "user")
|
||||
private Set<OrderDetail> orderDetail = new HashSet();
|
||||
|
||||
public UserLazy() {
|
||||
}
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
public UserLazy(final Long userId) {
|
||||
super();
|
||||
this.userId = userId;
|
||||
}
|
||||
@Id
|
||||
@GeneratedValue
|
||||
@Column(name = "USER_ID")
|
||||
private Long userId;
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
final int prime = 31;
|
||||
int result = 1;
|
||||
result = prime * result + ((userId == null) ? 0 : userId.hashCode());
|
||||
return result;
|
||||
}
|
||||
@OneToMany(fetch = FetchType.LAZY, mappedBy = "user")
|
||||
private Set<OrderDetail> orderDetail = new HashSet();
|
||||
|
||||
@Override
|
||||
public boolean equals(final Object obj) {
|
||||
if (this == obj)
|
||||
return true;
|
||||
if (obj == null)
|
||||
return false;
|
||||
if (getClass() != obj.getClass())
|
||||
return false;
|
||||
final UserLazy other = (UserLazy) obj;
|
||||
if (userId == null) {
|
||||
if (other.userId != null)
|
||||
return false;
|
||||
} else if (!userId.equals(other.userId))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
public UserLazy() {
|
||||
}
|
||||
|
||||
public Long getUserId() {
|
||||
return userId;
|
||||
}
|
||||
public UserLazy(final Long userId) {
|
||||
super();
|
||||
this.userId = userId;
|
||||
}
|
||||
|
||||
public void setUserId(final Long userId) {
|
||||
this.userId = userId;
|
||||
}
|
||||
@Override
|
||||
public int hashCode() {
|
||||
final int prime = 31;
|
||||
int result = 1;
|
||||
result = prime * result + ((userId == null) ? 0 : userId.hashCode());
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
public Set<OrderDetail> getOrderDetail() {
|
||||
return orderDetail;
|
||||
}
|
||||
@Override
|
||||
public boolean equals(final Object obj) {
|
||||
if (this == obj)
|
||||
return true;
|
||||
if (obj == null)
|
||||
return false;
|
||||
if (getClass() != obj.getClass())
|
||||
return false;
|
||||
final UserLazy other = (UserLazy) obj;
|
||||
if (userId == null) {
|
||||
if (other.userId != null)
|
||||
return false;
|
||||
} else if (!userId.equals(other.userId))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
public void setOrderDetail(Set<OrderDetail> orderDetail) {
|
||||
this.orderDetail = orderDetail;
|
||||
}
|
||||
public Long getUserId() {
|
||||
return userId;
|
||||
}
|
||||
|
||||
public void setUserId(final Long userId) {
|
||||
this.userId = userId;
|
||||
}
|
||||
|
||||
public Set<OrderDetail> getOrderDetail() {
|
||||
return orderDetail;
|
||||
}
|
||||
|
||||
public void setOrderDetail(Set<OrderDetail> orderDetail) {
|
||||
this.orderDetail = orderDetail;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -6,27 +6,24 @@ import org.hibernate.cfg.Configuration;
|
||||
|
||||
public class HibernateUtil {
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
public static Session getHibernateSession(String fetchMethod) {
|
||||
//two config files are there
|
||||
//one with lazy loading enabled
|
||||
//another lazy = false
|
||||
SessionFactory sf;
|
||||
if ("lazy".equals(fetchMethod)) {
|
||||
sf = new Configuration().configure("fetchingLazy.cfg.xml").buildSessionFactory();
|
||||
} else {
|
||||
sf = new Configuration().configure("fetching.cfg.xml").buildSessionFactory();
|
||||
}
|
||||
|
||||
// fetching.cfg.xml is used for this example
|
||||
return sf.openSession();
|
||||
}
|
||||
@SuppressWarnings("deprecation")
|
||||
public static Session getHibernateSession(String fetchMethod) {
|
||||
// two config files are there
|
||||
// one with lazy loading enabled
|
||||
// another lazy = false
|
||||
SessionFactory sf;
|
||||
if ("lazy".equals(fetchMethod)) {
|
||||
sf = new Configuration().configure("fetchingLazy.cfg.xml").buildSessionFactory();
|
||||
} else {
|
||||
sf = new Configuration().configure("fetching.cfg.xml").buildSessionFactory();
|
||||
}
|
||||
|
||||
// fetching.cfg.xml is used for this example
|
||||
return sf.openSession();
|
||||
}
|
||||
|
||||
public static Session getHibernateSession() {
|
||||
return new Configuration()
|
||||
.configure("fetching.cfg.xml")
|
||||
.buildSessionFactory()
|
||||
.openSession();
|
||||
return new Configuration().configure("fetching.cfg.xml").buildSessionFactory().openSession();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -16,92 +16,90 @@ import javax.persistence.NamedNativeQuery;
|
||||
|
||||
import org.hibernate.envers.Audited;
|
||||
|
||||
@NamedNativeQueries({
|
||||
@NamedNativeQuery(name = "callGetAllFoos", query = "CALL GetAllFoos()", resultClass = Foo.class),
|
||||
@NamedNativeQuery(name = "callGetFoosByName", query = "CALL GetFoosByName(:fooName)", resultClass = Foo.class) })
|
||||
@NamedNativeQueries({ @NamedNativeQuery(name = "callGetAllFoos", query = "CALL GetAllFoos()", resultClass = Foo.class), @NamedNativeQuery(name = "callGetFoosByName", query = "CALL GetFoosByName(:fooName)", resultClass = Foo.class) })
|
||||
@Entity
|
||||
@Audited
|
||||
// @Proxy(lazy = false)
|
||||
public class Foo implements Serializable {
|
||||
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.AUTO)
|
||||
@Column(name = "id")
|
||||
private long id;
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.AUTO)
|
||||
@Column(name = "id")
|
||||
private long id;
|
||||
|
||||
@Column(name = "name")
|
||||
private String name;
|
||||
@Column(name = "name")
|
||||
private String name;
|
||||
|
||||
@ManyToOne(targetEntity = Bar.class, cascade = CascadeType.ALL, fetch = FetchType.EAGER)
|
||||
@JoinColumn(name = "BAR_ID")
|
||||
private Bar bar = new Bar();
|
||||
@ManyToOne(targetEntity = Bar.class, cascade = CascadeType.ALL, fetch = FetchType.EAGER)
|
||||
@JoinColumn(name = "BAR_ID")
|
||||
private Bar bar = new Bar();
|
||||
|
||||
public Foo() {
|
||||
super();
|
||||
}
|
||||
public Foo() {
|
||||
super();
|
||||
}
|
||||
|
||||
public Foo(final String name) {
|
||||
super();
|
||||
this.name = name;
|
||||
}
|
||||
public Foo(final String name) {
|
||||
super();
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
//
|
||||
//
|
||||
|
||||
public Bar getBar() {
|
||||
return bar;
|
||||
}
|
||||
public Bar getBar() {
|
||||
return bar;
|
||||
}
|
||||
|
||||
public void setBar(final Bar bar) {
|
||||
this.bar = bar;
|
||||
}
|
||||
public void setBar(final Bar bar) {
|
||||
this.bar = bar;
|
||||
}
|
||||
|
||||
public long getId() {
|
||||
return id;
|
||||
}
|
||||
public long getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(final long id) {
|
||||
this.id = id;
|
||||
}
|
||||
public void setId(final long id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(final String name) {
|
||||
this.name = name;
|
||||
}
|
||||
public void setName(final String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
//
|
||||
//
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
final int prime = 31;
|
||||
int result = 1;
|
||||
result = prime * result + ((name == null) ? 0 : name.hashCode());
|
||||
return result;
|
||||
}
|
||||
@Override
|
||||
public int hashCode() {
|
||||
final int prime = 31;
|
||||
int result = 1;
|
||||
result = prime * result + ((name == null) ? 0 : name.hashCode());
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(final Object obj) {
|
||||
if (this == obj)
|
||||
return true;
|
||||
if (obj == null)
|
||||
return false;
|
||||
if (getClass() != obj.getClass())
|
||||
return false;
|
||||
final Foo other = (Foo) obj;
|
||||
if (name == null) {
|
||||
if (other.name != null)
|
||||
return false;
|
||||
} else if (!name.equals(other.name))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
@Override
|
||||
public boolean equals(final Object obj) {
|
||||
if (this == obj)
|
||||
return true;
|
||||
if (obj == null)
|
||||
return false;
|
||||
if (getClass() != obj.getClass())
|
||||
return false;
|
||||
final Foo other = (Foo) obj;
|
||||
if (name == null) {
|
||||
if (other.name != null)
|
||||
return false;
|
||||
} else if (!name.equals(other.name))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
final StringBuilder builder = new StringBuilder();
|
||||
builder.append("Foo [name=").append(name).append("]");
|
||||
return builder.toString();
|
||||
}
|
||||
@Override
|
||||
public String toString() {
|
||||
final StringBuilder builder = new StringBuilder();
|
||||
builder.append("Foo [name=").append(name).append("]");
|
||||
return builder.toString();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,178 +14,170 @@ import com.baeldung.hibernate.criteria.view.ApplicationView;
|
||||
|
||||
public class HibernateCriteriaTest {
|
||||
|
||||
final private ApplicationView av = new ApplicationView();
|
||||
final private ApplicationView av = new ApplicationView();
|
||||
|
||||
@Test
|
||||
public void testPerformanceOfCriteria() {
|
||||
assertTrue(av.checkIfCriteriaTimeLower());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testLikeCriteriaQuery() {
|
||||
final Session session = HibernateUtil.getHibernateSession();
|
||||
final List<Item> expectedLikeList = session.createQuery("From Item where itemName like '%chair%'").list();
|
||||
final String expectedLikeItems[] = new String[expectedLikeList.size()];
|
||||
for (int i = 0; i < expectedLikeList.size(); i++) {
|
||||
expectedLikeItems[i] = expectedLikeList.get(i).getItemName();
|
||||
}
|
||||
session.close();
|
||||
assertArrayEquals(expectedLikeItems, av.likeCriteria());
|
||||
}
|
||||
@Test
|
||||
public void testPerformanceOfCriteria() {
|
||||
assertTrue(av.checkIfCriteriaTimeLower());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testILikeCriteriaQuery() {
|
||||
final Session session = HibernateUtil.getHibernateSession();
|
||||
final List<Item> expectedChairCaseList = session.createQuery("From Item where itemName like '%Chair%'").list();
|
||||
final String expectedChairCaseItems[] = new String[expectedChairCaseList.size()];
|
||||
for (int i = 0; i < expectedChairCaseList.size(); i++) {
|
||||
expectedChairCaseItems[i] = expectedChairCaseList.get(i).getItemName();
|
||||
}
|
||||
session.close();
|
||||
assertArrayEquals(expectedChairCaseItems, av.likeCaseCriteria());
|
||||
@Test
|
||||
public void testLikeCriteriaQuery() {
|
||||
final Session session = HibernateUtil.getHibernateSession();
|
||||
final List<Item> expectedLikeList = session.createQuery("From Item where itemName like '%chair%'").list();
|
||||
final String expectedLikeItems[] = new String[expectedLikeList.size()];
|
||||
for (int i = 0; i < expectedLikeList.size(); i++) {
|
||||
expectedLikeItems[i] = expectedLikeList.get(i).getItemName();
|
||||
}
|
||||
session.close();
|
||||
assertArrayEquals(expectedLikeItems, av.likeCriteria());
|
||||
}
|
||||
|
||||
}
|
||||
@Test
|
||||
public void testILikeCriteriaQuery() {
|
||||
final Session session = HibernateUtil.getHibernateSession();
|
||||
final List<Item> expectedChairCaseList = session.createQuery("From Item where itemName like '%Chair%'").list();
|
||||
final String expectedChairCaseItems[] = new String[expectedChairCaseList.size()];
|
||||
for (int i = 0; i < expectedChairCaseList.size(); i++) {
|
||||
expectedChairCaseItems[i] = expectedChairCaseList.get(i).getItemName();
|
||||
}
|
||||
session.close();
|
||||
assertArrayEquals(expectedChairCaseItems, av.likeCaseCriteria());
|
||||
|
||||
@Test
|
||||
public void testNullCriteriaQuery() {
|
||||
final Session session = HibernateUtil.getHibernateSession();
|
||||
final List<Item> expectedIsNullDescItemsList = session.createQuery("From Item where itemDescription is null")
|
||||
.list();
|
||||
final String expectedIsNullDescItems[] = new String[expectedIsNullDescItemsList.size()];
|
||||
for (int i = 0; i < expectedIsNullDescItemsList.size(); i++) {
|
||||
expectedIsNullDescItems[i] = expectedIsNullDescItemsList.get(i).getItemName();
|
||||
}
|
||||
session.close();
|
||||
assertArrayEquals(expectedIsNullDescItems, av.nullCriteria());
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testIsNotNullCriteriaQuery() {
|
||||
final Session session = HibernateUtil.getHibernateSession();
|
||||
final List<Item> expectedIsNotNullDescItemsList = session
|
||||
.createQuery("From Item where itemDescription is not null").list();
|
||||
final String expectedIsNotNullDescItems[] = new String[expectedIsNotNullDescItemsList.size()];
|
||||
for (int i = 0; i < expectedIsNotNullDescItemsList.size(); i++) {
|
||||
expectedIsNotNullDescItems[i] = expectedIsNotNullDescItemsList.get(i).getItemName();
|
||||
}
|
||||
session.close();
|
||||
assertArrayEquals(expectedIsNotNullDescItems, av.notNullCriteria());
|
||||
@Test
|
||||
public void testNullCriteriaQuery() {
|
||||
final Session session = HibernateUtil.getHibernateSession();
|
||||
final List<Item> expectedIsNullDescItemsList = session.createQuery("From Item where itemDescription is null").list();
|
||||
final String expectedIsNullDescItems[] = new String[expectedIsNullDescItemsList.size()];
|
||||
for (int i = 0; i < expectedIsNullDescItemsList.size(); i++) {
|
||||
expectedIsNullDescItems[i] = expectedIsNullDescItemsList.get(i).getItemName();
|
||||
}
|
||||
session.close();
|
||||
assertArrayEquals(expectedIsNullDescItems, av.nullCriteria());
|
||||
}
|
||||
|
||||
}
|
||||
@Test
|
||||
public void testIsNotNullCriteriaQuery() {
|
||||
final Session session = HibernateUtil.getHibernateSession();
|
||||
final List<Item> expectedIsNotNullDescItemsList = session.createQuery("From Item where itemDescription is not null").list();
|
||||
final String expectedIsNotNullDescItems[] = new String[expectedIsNotNullDescItemsList.size()];
|
||||
for (int i = 0; i < expectedIsNotNullDescItemsList.size(); i++) {
|
||||
expectedIsNotNullDescItems[i] = expectedIsNotNullDescItemsList.get(i).getItemName();
|
||||
}
|
||||
session.close();
|
||||
assertArrayEquals(expectedIsNotNullDescItems, av.notNullCriteria());
|
||||
|
||||
@Test
|
||||
public void testAverageProjection() {
|
||||
final Session session = HibernateUtil.getHibernateSession();
|
||||
final List<Double> expectedAvgProjItemsList = session.createQuery("Select avg(itemPrice) from Item item")
|
||||
.list();
|
||||
}
|
||||
|
||||
final Double expectedAvgProjItems[] = new Double[expectedAvgProjItemsList.size()];
|
||||
for (int i = 0; i < expectedAvgProjItemsList.size(); i++) {
|
||||
expectedAvgProjItems[i] = expectedAvgProjItemsList.get(i);
|
||||
}
|
||||
session.close();
|
||||
assertArrayEquals(expectedAvgProjItems, av.projectionAverage());
|
||||
@Test
|
||||
public void testAverageProjection() {
|
||||
final Session session = HibernateUtil.getHibernateSession();
|
||||
final List<Double> expectedAvgProjItemsList = session.createQuery("Select avg(itemPrice) from Item item").list();
|
||||
|
||||
}
|
||||
final Double expectedAvgProjItems[] = new Double[expectedAvgProjItemsList.size()];
|
||||
for (int i = 0; i < expectedAvgProjItemsList.size(); i++) {
|
||||
expectedAvgProjItems[i] = expectedAvgProjItemsList.get(i);
|
||||
}
|
||||
session.close();
|
||||
assertArrayEquals(expectedAvgProjItems, av.projectionAverage());
|
||||
|
||||
@Test
|
||||
public void testRowCountProjection() {
|
||||
final Session session = HibernateUtil.getHibernateSession();
|
||||
final List<Long> expectedCountProjItemsList = session.createQuery("Select count(*) from Item").list();
|
||||
final Long expectedCountProjItems[] = new Long[expectedCountProjItemsList.size()];
|
||||
for (int i = 0; i < expectedCountProjItemsList.size(); i++) {
|
||||
expectedCountProjItems[i] = expectedCountProjItemsList.get(i);
|
||||
}
|
||||
session.close();
|
||||
assertArrayEquals(expectedCountProjItems, av.projectionRowCount());
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testOrCriteriaQuery() {
|
||||
final Session session = HibernateUtil.getHibernateSession();
|
||||
final List<Item> expectedOrCritItemsList = session
|
||||
.createQuery("From Item where itemPrice>1000 or itemName like 'Chair%'").list();
|
||||
final String expectedOrCritItems[] = new String[expectedOrCritItemsList.size()];
|
||||
for (int i = 0; i < expectedOrCritItemsList.size(); i++) {
|
||||
expectedOrCritItems[i] = expectedOrCritItemsList.get(i).getItemName();
|
||||
}
|
||||
session.close();
|
||||
assertArrayEquals(expectedOrCritItems, av.orLogicalCriteria());
|
||||
}
|
||||
@Test
|
||||
public void testRowCountProjection() {
|
||||
final Session session = HibernateUtil.getHibernateSession();
|
||||
final List<Long> expectedCountProjItemsList = session.createQuery("Select count(*) from Item").list();
|
||||
final Long expectedCountProjItems[] = new Long[expectedCountProjItemsList.size()];
|
||||
for (int i = 0; i < expectedCountProjItemsList.size(); i++) {
|
||||
expectedCountProjItems[i] = expectedCountProjItemsList.get(i);
|
||||
}
|
||||
session.close();
|
||||
assertArrayEquals(expectedCountProjItems, av.projectionRowCount());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testAndCriteriaQuery() {
|
||||
final Session session = HibernateUtil.getHibernateSession();
|
||||
final List<Item> expectedAndCritItemsList = session
|
||||
.createQuery("From Item where itemPrice>1000 and itemName like 'Chair%'").list();
|
||||
final String expectedAndCritItems[] = new String[expectedAndCritItemsList.size()];
|
||||
for (int i = 0; i < expectedAndCritItemsList.size(); i++) {
|
||||
expectedAndCritItems[i] = expectedAndCritItemsList.get(i).getItemName();
|
||||
}
|
||||
session.close();
|
||||
assertArrayEquals(expectedAndCritItems, av.andLogicalCriteria());
|
||||
}
|
||||
@Test
|
||||
public void testOrCriteriaQuery() {
|
||||
final Session session = HibernateUtil.getHibernateSession();
|
||||
final List<Item> expectedOrCritItemsList = session.createQuery("From Item where itemPrice>1000 or itemName like 'Chair%'").list();
|
||||
final String expectedOrCritItems[] = new String[expectedOrCritItemsList.size()];
|
||||
for (int i = 0; i < expectedOrCritItemsList.size(); i++) {
|
||||
expectedOrCritItems[i] = expectedOrCritItemsList.get(i).getItemName();
|
||||
}
|
||||
session.close();
|
||||
assertArrayEquals(expectedOrCritItems, av.orLogicalCriteria());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testMultiCriteriaQuery() {
|
||||
final Session session = HibernateUtil.getHibernateSession();
|
||||
final List<Item> expectedMultiCritItemsList = session
|
||||
.createQuery("From Item where itemDescription is null and itemName like'chair%'").list();
|
||||
final String expectedMultiCritItems[] = new String[expectedMultiCritItemsList.size()];
|
||||
for (int i = 0; i < expectedMultiCritItemsList.size(); i++) {
|
||||
expectedMultiCritItems[i] = expectedMultiCritItemsList.get(i).getItemName();
|
||||
}
|
||||
session.close();
|
||||
assertArrayEquals(expectedMultiCritItems, av.twoCriteria());
|
||||
}
|
||||
@Test
|
||||
public void testAndCriteriaQuery() {
|
||||
final Session session = HibernateUtil.getHibernateSession();
|
||||
final List<Item> expectedAndCritItemsList = session.createQuery("From Item where itemPrice>1000 and itemName like 'Chair%'").list();
|
||||
final String expectedAndCritItems[] = new String[expectedAndCritItemsList.size()];
|
||||
for (int i = 0; i < expectedAndCritItemsList.size(); i++) {
|
||||
expectedAndCritItems[i] = expectedAndCritItemsList.get(i).getItemName();
|
||||
}
|
||||
session.close();
|
||||
assertArrayEquals(expectedAndCritItems, av.andLogicalCriteria());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSortCriteriaQuery() {
|
||||
final Session session = HibernateUtil.getHibernateSession();
|
||||
final List<Item> expectedSortCritItemsList = session
|
||||
.createQuery("From Item order by itemName asc, itemPrice desc").list();
|
||||
final String expectedSortCritItems[] = new String[expectedSortCritItemsList.size()];
|
||||
for (int i = 0; i < expectedSortCritItemsList.size(); i++) {
|
||||
expectedSortCritItems[i] = expectedSortCritItemsList.get(i).getItemName();
|
||||
}
|
||||
session.close();
|
||||
assertArrayEquals(expectedSortCritItems, av.sortingCriteria());
|
||||
}
|
||||
@Test
|
||||
public void testMultiCriteriaQuery() {
|
||||
final Session session = HibernateUtil.getHibernateSession();
|
||||
final List<Item> expectedMultiCritItemsList = session.createQuery("From Item where itemDescription is null and itemName like'chair%'").list();
|
||||
final String expectedMultiCritItems[] = new String[expectedMultiCritItemsList.size()];
|
||||
for (int i = 0; i < expectedMultiCritItemsList.size(); i++) {
|
||||
expectedMultiCritItems[i] = expectedMultiCritItemsList.get(i).getItemName();
|
||||
}
|
||||
session.close();
|
||||
assertArrayEquals(expectedMultiCritItems, av.twoCriteria());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGreaterThanCriteriaQuery() {
|
||||
final Session session = HibernateUtil.getHibernateSession();
|
||||
final List<Item> expectedGreaterThanList = session.createQuery("From Item where itemPrice>1000").list();
|
||||
final String expectedGreaterThanItems[] = new String[expectedGreaterThanList.size()];
|
||||
for (int i = 0; i < expectedGreaterThanList.size(); i++) {
|
||||
expectedGreaterThanItems[i] = expectedGreaterThanList.get(i).getItemName();
|
||||
}
|
||||
session.close();
|
||||
assertArrayEquals(expectedGreaterThanItems, av.greaterThanCriteria());
|
||||
}
|
||||
@Test
|
||||
public void testSortCriteriaQuery() {
|
||||
final Session session = HibernateUtil.getHibernateSession();
|
||||
final List<Item> expectedSortCritItemsList = session.createQuery("From Item order by itemName asc, itemPrice desc").list();
|
||||
final String expectedSortCritItems[] = new String[expectedSortCritItemsList.size()];
|
||||
for (int i = 0; i < expectedSortCritItemsList.size(); i++) {
|
||||
expectedSortCritItems[i] = expectedSortCritItemsList.get(i).getItemName();
|
||||
}
|
||||
session.close();
|
||||
assertArrayEquals(expectedSortCritItems, av.sortingCriteria());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testLessThanCriteriaQuery() {
|
||||
final Session session = HibernateUtil.getHibernateSession();
|
||||
final List<Item> expectedLessList = session.createQuery("From Item where itemPrice<1000").list();
|
||||
final String expectedLessThanItems[] = new String[expectedLessList.size()];
|
||||
for (int i = 0; i < expectedLessList.size(); i++) {
|
||||
expectedLessThanItems[i] = expectedLessList.get(i).getItemName();
|
||||
}
|
||||
session.close();
|
||||
assertArrayEquals(expectedLessThanItems, av.lessThanCriteria());
|
||||
}
|
||||
@Test
|
||||
public void testGreaterThanCriteriaQuery() {
|
||||
final Session session = HibernateUtil.getHibernateSession();
|
||||
final List<Item> expectedGreaterThanList = session.createQuery("From Item where itemPrice>1000").list();
|
||||
final String expectedGreaterThanItems[] = new String[expectedGreaterThanList.size()];
|
||||
for (int i = 0; i < expectedGreaterThanList.size(); i++) {
|
||||
expectedGreaterThanItems[i] = expectedGreaterThanList.get(i).getItemName();
|
||||
}
|
||||
session.close();
|
||||
assertArrayEquals(expectedGreaterThanItems, av.greaterThanCriteria());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void betweenCriteriaQuery() {
|
||||
final Session session = HibernateUtil.getHibernateSession();
|
||||
final List<Item> expectedBetweenList = session.createQuery("From Item where itemPrice between 100 and 200")
|
||||
.list();
|
||||
final String expectedPriceBetweenItems[] = new String[expectedBetweenList.size()];
|
||||
for (int i = 0; i < expectedBetweenList.size(); i++) {
|
||||
expectedPriceBetweenItems[i] = expectedBetweenList.get(i).getItemName();
|
||||
}
|
||||
session.close();
|
||||
assertArrayEquals(expectedPriceBetweenItems, av.betweenCriteria());
|
||||
}
|
||||
@Test
|
||||
public void testLessThanCriteriaQuery() {
|
||||
final Session session = HibernateUtil.getHibernateSession();
|
||||
final List<Item> expectedLessList = session.createQuery("From Item where itemPrice<1000").list();
|
||||
final String expectedLessThanItems[] = new String[expectedLessList.size()];
|
||||
for (int i = 0; i < expectedLessList.size(); i++) {
|
||||
expectedLessThanItems[i] = expectedLessList.get(i).getItemName();
|
||||
}
|
||||
session.close();
|
||||
assertArrayEquals(expectedLessThanItems, av.lessThanCriteria());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void betweenCriteriaQuery() {
|
||||
final Session session = HibernateUtil.getHibernateSession();
|
||||
final List<Item> expectedBetweenList = session.createQuery("From Item where itemPrice between 100 and 200").list();
|
||||
final String expectedPriceBetweenItems[] = new String[expectedBetweenList.size()];
|
||||
for (int i = 0; i < expectedBetweenList.size(); i++) {
|
||||
expectedPriceBetweenItems[i] = expectedBetweenList.get(i).getItemName();
|
||||
}
|
||||
session.close();
|
||||
assertArrayEquals(expectedPriceBetweenItems, av.betweenCriteria());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,10 +6,10 @@ import org.junit.runner.notification.Failure;
|
||||
|
||||
public class HibernateCriteriaTestRunner {
|
||||
|
||||
public static void main(final String[] args) {
|
||||
Result result = JUnitCore.runClasses(HibernateCriteriaTestSuite.class);
|
||||
for (Failure failure : result.getFailures()) {
|
||||
|
||||
}
|
||||
}
|
||||
public static void main(final String[] args) {
|
||||
Result result = JUnitCore.runClasses(HibernateCriteriaTestSuite.class);
|
||||
for (Failure failure : result.getFailures()) {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,5 +7,5 @@ import org.junit.runners.Suite;
|
||||
@Suite.SuiteClasses({ HibernateCriteriaTest.class })
|
||||
|
||||
public class HibernateCriteriaTestSuite {
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -13,31 +13,30 @@ import static org.junit.Assert.assertTrue;
|
||||
|
||||
public class HibernateFetchingTest {
|
||||
|
||||
// this loads sample data in the database
|
||||
@Before
|
||||
public void addFecthingTestData() {
|
||||
FetchingAppView fav = new FetchingAppView();
|
||||
fav.createTestData();
|
||||
}
|
||||
|
||||
//this loads sample data in the database
|
||||
@Before
|
||||
public void addFecthingTestData(){
|
||||
FetchingAppView fav = new FetchingAppView();
|
||||
fav.createTestData();
|
||||
}
|
||||
|
||||
//testLazyFetching() tests the lazy loading
|
||||
//Since it lazily loaded so orderDetalSetLazy won't
|
||||
//be initialized
|
||||
@Test
|
||||
public void testLazyFetching() {
|
||||
FetchingAppView fav = new FetchingAppView();
|
||||
Set<OrderDetail> orderDetalSetLazy = fav.lazyLoaded();
|
||||
assertFalse(Hibernate.isInitialized(orderDetalSetLazy));
|
||||
}
|
||||
|
||||
//testEagerFetching() tests the eager loading
|
||||
//Since it eagerly loaded so orderDetalSetLazy would
|
||||
//be initialized
|
||||
@Test
|
||||
public void testEagerFetching() {
|
||||
FetchingAppView fav = new FetchingAppView();
|
||||
Set<OrderDetail> orderDetalSetEager = fav.eagerLoaded();
|
||||
assertTrue(Hibernate.isInitialized(orderDetalSetEager));
|
||||
}
|
||||
// testLazyFetching() tests the lazy loading
|
||||
// Since it lazily loaded so orderDetalSetLazy won't
|
||||
// be initialized
|
||||
@Test
|
||||
public void testLazyFetching() {
|
||||
FetchingAppView fav = new FetchingAppView();
|
||||
Set<OrderDetail> orderDetalSetLazy = fav.lazyLoaded();
|
||||
assertFalse(Hibernate.isInitialized(orderDetalSetLazy));
|
||||
}
|
||||
|
||||
// testEagerFetching() tests the eager loading
|
||||
// Since it eagerly loaded so orderDetalSetLazy would
|
||||
// be initialized
|
||||
@Test
|
||||
public void testEagerFetching() {
|
||||
FetchingAppView fav = new FetchingAppView();
|
||||
Set<OrderDetail> orderDetalSetEager = fav.eagerLoaded();
|
||||
assertTrue(Hibernate.isInitialized(orderDetalSetEager));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
package com.baeldung.persistence.save;
|
||||
|
||||
|
||||
import com.baeldung.persistence.model.Person;
|
||||
import org.hibernate.HibernateException;
|
||||
import org.hibernate.Session;
|
||||
@@ -25,16 +24,9 @@ public class SaveMethodsTest {
|
||||
|
||||
@BeforeClass
|
||||
public static void beforeTests() {
|
||||
Configuration configuration = new Configuration()
|
||||
.addAnnotatedClass(Person.class)
|
||||
.setProperty("hibernate.dialect", HSQLDialect.class.getName())
|
||||
.setProperty("hibernate.connection.driver_class", org.hsqldb.jdbcDriver.class.getName())
|
||||
.setProperty("hibernate.connection.url", "jdbc:hsqldb:mem:test")
|
||||
.setProperty("hibernate.connection.username", "sa")
|
||||
.setProperty("hibernate.connection.password", "")
|
||||
.setProperty("hibernate.hbm2ddl.auto", "update");
|
||||
ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().applySettings(
|
||||
configuration.getProperties()).build();
|
||||
Configuration configuration = new Configuration().addAnnotatedClass(Person.class).setProperty("hibernate.dialect", HSQLDialect.class.getName()).setProperty("hibernate.connection.driver_class", org.hsqldb.jdbcDriver.class.getName())
|
||||
.setProperty("hibernate.connection.url", "jdbc:hsqldb:mem:test").setProperty("hibernate.connection.username", "sa").setProperty("hibernate.connection.password", "").setProperty("hibernate.hbm2ddl.auto", "update");
|
||||
ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties()).build();
|
||||
sessionFactory = configuration.buildSessionFactory(serviceRegistry);
|
||||
}
|
||||
|
||||
@@ -44,7 +36,6 @@ public class SaveMethodsTest {
|
||||
session.beginTransaction();
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void whenPersistTransient_thenSavedToDatabaseOnCommit() {
|
||||
|
||||
@@ -244,7 +235,6 @@ public class SaveMethodsTest {
|
||||
|
||||
assertNotNull(session.get(Person.class, person.getId()));
|
||||
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
@@ -25,7 +25,7 @@ import com.baeldung.persistence.model.Foo;
|
||||
import com.baeldung.spring.PersistenceConfig;
|
||||
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration(classes = {PersistenceConfig.class}, loader = AnnotationConfigContextLoader.class)
|
||||
@ContextConfiguration(classes = { PersistenceConfig.class }, loader = AnnotationConfigContextLoader.class)
|
||||
public class FooStoredProceduresIntegrationTest {
|
||||
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(FooStoredProceduresIntegrationTest.class);
|
||||
@@ -47,8 +47,7 @@ public class FooStoredProceduresIntegrationTest {
|
||||
|
||||
private boolean getFoosByNameExists() {
|
||||
try {
|
||||
Query sqlQuery = session.createSQLQuery("CALL GetAllFoos()")
|
||||
.addEntity(Foo.class);
|
||||
Query sqlQuery = session.createSQLQuery("CALL GetAllFoos()").addEntity(Foo.class);
|
||||
sqlQuery.list();
|
||||
return true;
|
||||
} catch (SQLGrammarException e) {
|
||||
@@ -59,8 +58,7 @@ public class FooStoredProceduresIntegrationTest {
|
||||
|
||||
private boolean getAllFoosExists() {
|
||||
try {
|
||||
Query sqlQuery = session.createSQLQuery("CALL GetAllFoos()")
|
||||
.addEntity(Foo.class);
|
||||
Query sqlQuery = session.createSQLQuery("CALL GetAllFoos()").addEntity(Foo.class);
|
||||
sqlQuery.list();
|
||||
return true;
|
||||
} catch (SQLGrammarException e) {
|
||||
@@ -80,8 +78,7 @@ public class FooStoredProceduresIntegrationTest {
|
||||
fooService.create(new Foo(randomAlphabetic(6)));
|
||||
|
||||
// Stored procedure getAllFoos using createSQLQuery
|
||||
Query sqlQuery = session.createSQLQuery("CALL GetAllFoos()").addEntity(
|
||||
Foo.class);
|
||||
Query sqlQuery = session.createSQLQuery("CALL GetAllFoos()").addEntity(Foo.class);
|
||||
@SuppressWarnings("unchecked")
|
||||
List<Foo> allFoos = sqlQuery.list();
|
||||
for (Foo foo : allFoos) {
|
||||
@@ -105,8 +102,7 @@ public class FooStoredProceduresIntegrationTest {
|
||||
fooService.create(new Foo("NewFooName"));
|
||||
|
||||
// Stored procedure getFoosByName using createSQLQuery()
|
||||
Query sqlQuery = session.createSQLQuery("CALL GetFoosByName(:fooName)")
|
||||
.addEntity(Foo.class).setParameter("fooName", "NewFooName");
|
||||
Query sqlQuery = session.createSQLQuery("CALL GetFoosByName(:fooName)").addEntity(Foo.class).setParameter("fooName", "NewFooName");
|
||||
@SuppressWarnings("unchecked")
|
||||
List<Foo> allFoosByName = sqlQuery.list();
|
||||
for (Foo foo : allFoosByName) {
|
||||
@@ -114,8 +110,7 @@ public class FooStoredProceduresIntegrationTest {
|
||||
}
|
||||
|
||||
// Stored procedure getFoosByName using getNamedQuery()
|
||||
Query namedQuery = session.getNamedQuery("callGetFoosByName")
|
||||
.setParameter("fooName", "NewFooName");
|
||||
Query namedQuery = session.getNamedQuery("callGetFoosByName").setParameter("fooName", "NewFooName");
|
||||
@SuppressWarnings("unchecked")
|
||||
List<Foo> allFoosByName2 = namedQuery.list();
|
||||
for (Foo foo : allFoosByName2) {
|
||||
|
||||
Reference in New Issue
Block a user