【Java开源代码栏目提醒】:网学会员Java开源代码为您提供CriteriaTest.java参考,解决您在CriteriaTest.java学习中工作中的难题,参考学习。
/* $Id$
*
* Copyright (c) DAKOSY AG and Riege Software. All rights reserved.
* Use is subject to license terms.
*/
package com.h3book.penguin.examples.dao.c10;
import static com.h3book.penguin.examples.util.HibernateServiceProvider.getSession;
import static com.h3book.penguin.examples.util.HibernateServiceProvider.initHibernate;
import static org.junit.Assert.assertEquals;
import java.util.List;
import junit.framework.JUnit4TestAdapter;
import org.hibernate.*;
import org.hibernate.criterion.*;
import org.hibernate.transform.AliasToBeanResultTransformer;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import com.h3book.penguin.examples.dao.BookDAO;
import com.h3book.penguin.examples.dao.InitTest;
import com.h3book.penguin.examples.domain.Author;
import com.h3book.penguin.examples.domain.Book;
import com.h3book.penguin.examples.domain.BusinessEntity;
import com.h3book.penguin.examples.domain.support.PersonVO;
/**
* Ge: Add docs
*
* @author <a href="mailto:
CriteriaTest.java为[网学网-网友上传,谢谢支持]。">Jing Ge</a>
* @version $Revision$
*/
public class CriteriaTest extends InitTest {
BookDAO bookDAO = new BookDAO();
/**
* needed when running this test on the Junit 3.8 or earlier version.
*/
public static junit.framework.Test suite() {
return new JUnit4TestAdapter(CriteriaTest.class);
}
@BeforeClass
public static void setUp()
{
initHibernate(Book.class, Author.class);
}
@Override
@Before
public void initBooks()
{
Book book1 = createBook("The Matrix", "the book of the matrix",
getDateByString("12051996"));
Book book2 = createBook("Thinking in Matrix",
"one of the best Matrix book", getDateByString("20032006"));
Book book3 = createBook("Hibernate3", "new book about Hibernate 3",
getDateByString("06062007"));
Author author1 = createAuthor("Jing", "Ge",
getDateByString("01011975"), true);
Author author2 = createAuthor("Anderson", "Neo",
getDateByString("01011966"), true);
Author author3 = createAuthor("Michael", "Peter",
getDateByString("01011970"), true);
book1.addAuthor(author3);
author3.addBook(book1);
book2.addAuthor(author2);
book2.addAuthor(author3);
author2.addBook(book2);
author3.addBook(book2);
book3.addAuthor(author1);
author1.addBook(book3);
Transaction t = null;
try {
Session session = getSession();
t = session.beginTransaction();
int o = bookDAO.save(book1);
bookDAO.save(book2);
bookDAO.save(book3);
t.commit();
} catch (HibernateException e) {
if (t != null) {
t.rollback();
e.printStackTrace();
}
}
}
@Test
public void simplestCriteria()
{
Session session = getSession();
Transaction t = session.beginTransaction();
List<Book> result = session.createCriteria(Book.class).list();
t.commit();
assertEquals(3, result.size());
}
@Test
public void commentCriteria()
{
Session session = getSession();
Transaction t = session.beginTransaction();
List<Book> result = session.createCriteria(Book.class)
.setComment("simple list all books").list();
t.commit();
assertEquals(3, result.size());
}
@Test
public void countPropertyCriteria()
{
Session session = getSession();
Transaction t = session.beginTransaction();
Integer count = (Integer) session.createCriteria(Book.class)
.setProjection(Property.forName("name").count()).uniqueResult();
t.commit();
assertEquals(3, count);
}
@Test
public void eAGERFetchCriteria()
{
Session session = getSession();
Transaction t = session.beginTransaction();
List<Book> result = session.createCriteria(Book.class).setFetchMode(
"authors", FetchMode.JOIN).list();
t.commit();
assertEquals(4, result.size());
}
@Test
public void eAGERFetchInnerJoinCriteria()
{
Session session = getSession();
Transaction t = session.beginTransaction();
List<Book> result = session.createCriteria(Book.class).createAlias(
"authors", "a", CriteriaSpecification.INNER_JOIN).setFetchMode(
"authors", FetchMode.JOIN).list();
t.commit();
assertEquals(4, result.size());
}
@Test
public void removeDuplicateObjectCriteria()
{
Session session = getSession();
Transaction t = session.beginTransaction();
List<Book> result = session.createCriteria(Book.class).setFetchMode(
"authors", FetchMode.JOIN).setResultTransformer(
Criteria.DISTINCT_ROOT_ENTITY).list();
t.commit();
assertEquals(3, result.size());
}
@Test
public void orderCriteria()
{
Session session = getSession();
Transaction t = session.beginTransaction();
List<Book> result = session.createCriteria(Book.class).addOrder(
Order.asc("name")).list();
t.commit();
assertEquals(3, result.size());
}
@Test
public void polymorphismCriteria()
{
Session session = getSession();
Transaction t = session.beginTransaction();
List<BusinessEntity> result = session.createCriteria(
BusinessEntity.class).list();
t.commit();
assertEquals(6, result.size());
}
@Test
public void eqRestrictionCriteria()
{
Session session = getSession();
Transaction t = session.beginTransaction();
List<Author> result = session.createCriteria(Author.class).add(
Restrictions.eq("firstName", "Jing")).list();
t.commit();
assertEquals(1, result.size());
}
@Test
public void eqRestrictionUniqueCriteria()
{
Session session = getSession();
Transaction t = session.beginTransaction();
Author result = (Author) session.createCriteria(Author.class).add(
Restrictions.eq("firstName", "Jing")).uniqueResult();
t.commit();
assertEquals("Jing", result.getFirstName());
}
@Test
public void eqPropertyCriteria()
{
Session session = getSession();
Transaction t = session.beginTransaction();
List<Author> result = session.createCriteria(Author.class).add(
Property.forName("firstName").eq("Jing")).list();
t.commit();
assertEquals(1, result.size());
}
@Test
public void pagenationCriteria()
{
Session session = getSession();
Transaction t = session.beginTransaction();
List<Book> result = session.createCriteria(Book.class)
.setFirstResult(0).setMaxResults(1).list();
t.commit();
assertEquals(1, result.size());
}
@Test
public void scrollCriteria()
{
Session session = getSession();
Transaction t = session.beginTransaction();
ScrollableResults result = session.createCriteria(Book.class).scroll();
result.last();
assertEquals("Hibernate3", ((Book) result.get()[0]).getName());
result.first();
assertEquals("The Matrix", ((Book) result.get()[0]).getName());
t.commit();
}
@Test
public void likeCriteria()
{
Session session = getSession();
Transaction t = session.beginTransaction();
List<Book> result = session.createCriteria(Book.class
上一篇:
CriteriaSpecification.java
下一篇:
法律专业开题报告范文