Hibernate Criteria 查询使用
转载 http://blog.csdn.net/woshisap/article/details/6747466
Hibernate 设计了 CriteriaSpecification 作为 Criteria 的父接口,下面提供了 Criteria和DetachedCriteria 。
   Criteria 和 DetachedCriteria 的主要区别在于创建的形式不一样, Criteria 是在线的,所以它是由 Hibernate Session 进行创建的;而 DetachedCriteria 是离线的,创建时无需 Session,DetachedCriteria 提供了 2 个静态方法 forClass(Class) 或 forEntityName(Name) 进行DetachedCriteria 实例的创建
    Spring 的框架提供了getHibernateTemplate ().findByCrite(detachedCriteria) 方法可以很方便地根据DetachedCriteria 来返回查询结果。 
    Criteria 和 DetachedCriteria 均可使用 Criterion 和 Projection 设置查询条件。可以设 置 FetchMode( 联合查询抓取的模式 ) ,设置排序方式。对于 Criteria 还可以设置 FlushModel (冲刷 Session 的方式)和 LockMode (数据库锁模式)。
    Criterion 是 Criteria 的查询条件。Criteria 提供了 add(Criterion criterion) 方法来 添加查询条件。      Criterion 接口的主要实现包括: Example 、 Junction 和 SimpleExpression 。而 Junction 的实际使用是它的两个子类 conjunction 和 disjunction ,分别是使用 AND 和 OR 操作符进行来联结查询条件集合。      Criterion 的实例可以通过 Restrictions 工具类来创建,Restrictions 提供了大量的静态 方法,如 eq (等于)、 ge (大于等于)、 between 等来方法的创建 Criterion 查询条件 (SimpleExpression 实例)。除此之外, Restrictions 还提供了方法来创建 conjunction 和 disjunction 实例,通过往该实例的 add(Criteria) 方法来增加查询条件形成一个查询条件集合 。至于 Example 的创建有所不同, Example 本身提供了一个静态方法 create(Object entity) ,即根据一个对象(实际使用中一般是映射到数据库的对象)来创建。然后可以设置一些 过滤条件: 
   Example exampleUser =Example.create(u) .ignoreCase() // 忽略大小写
.enableLike(MatchMode.ANYWHERE); // 对 String 类型的属性,无论在那里值在那里都匹配。相当于 %value%
Project 主要是让 Criteria 能够进行报表查询,并可以实现分组。 Project 主要有 SimpleProjection 、 ProjectionList 和 Property 三个实现。其中 SimpleProjection 和 ProjectionList 的实例化是由内建的 Projections 来完成,如提供的 avg 、 count 、 max 、 min 、 sum 可以让开发者很容易对某个字段进行统计查询。
Property 是对某个字段进行查询条件的设置,如通过Porperty.forName(“color”).in (new String[]{“black”,”red”,”write”}); 则可以创建一个 Project 实例。通过 criteria 的 add(Project) 方法加入到查询条件中去。     使用 Criteria 进行查询,主要要清晰的是 Hibernate 提供了那些类和方法来满足开发中查 询条件的创建和组装,下面介绍几种用法:
    1. 创建一个Criteria 实例 org.hibernate.Criteria接口表示特定持久类的一个查询。Session是 Criteria实例的工厂。
- Java代码
 - 1. Criteria crit = sess.createCriteria(Cat.class);
 - 2.
 - 3.crit.setMaxResults(50);
 - 4.
 - 5.List cats = crit.list();
 - 6.
 - 7.
 - Criteria crit = sess.createCriteria(Cat.class);
 - crit.setMaxResults(50);
 - List cats = crit.list();
 
2. 限制结果集内容一个单独的查询条件是org.hibernate.criterion.Criterion 接口的一个实例。 org.hibernate.criterion.Restrictions类 定义了获得某些内置Criterion类型的工厂方法。
- Java代码
 - 1.List cats = sess.createCriteria(Cat.class) .add( Restrictions.like("name", "Fritz%") )
 - 2.
 - 3..add( Restrictions.between("weight", minWeight, maxWeight) ) .list();
 - List cats = sess.createCriteria(Cat.class) .add( Restrictions.like("name", "Fritz%") )
 - .add( Restrictions.between("weight", minWeight, maxWeight) ) .list();
 
约束可以按逻辑分组。
- Java代码
 - 1.List cats = sess.createCriteria(Cat.class) .add( Restrictions.like("name", "Fritz%") )
 - 2.
 - 3..add( Restrictions.or( Restrictions.eq( "age", new Integer(0) ), Restrictions.isNull("age") ) ) .list();
 - 4.
 - 5.List cats = sess.createCriteria(Cat.class)
 - 6.
 - 7..add( Restrictions.in( "name", new String[] { "Fritz", "Izi", "Pk" } ) )
 - 8.
 - 9..add( Restrictions.disjunction() .add( Restrictions.isNull("age") )
 - 10.
 - 11..add( Restrictions.eq("age", new Integer(0) ) )
 - 12.
 - 13..add( Restrictions.eq("age", new Integer(1) ) )
 - 14.
 - 15..add( Restrictions.eq("age", new Integer(2) ) ) ) )
 - 16.
 - 17..list();
 - List cats = sess.createCriteria(Cat.class) .add( Restrictions.like("name", "Fritz%") )
 - .add( Restrictions.or( Restrictions.eq( "age", new Integer(0) ), Restrictions.isNull("age") ) ) .list();
 - List cats = sess.createCriteria(Cat.class)
 - .add( Restrictions.in( "name", new String[] { "Fritz", "Izi", "Pk" } ) )
 - .add( Restrictions.disjunction() .add( Restrictions.isNull("age") )
 - .add( Restrictions.eq("age", new Integer(0)))
 - .add( Restrictions.eq("age", new Integer(1)))
 - .add( Restrictions.eq("age", new Integer(2)))))
 - .list();
 
Hibernate提供了相当多的内置criterion类型(Restrictions 子类), 但是尤其有用的是可以允许 你直接使用SQL。
Java代码
- 1.List cats = sess.createCriteria(Cat.class)
 - 2.
 - 3..add( Restrictions.sql("lower({alias}.name) like lower(?)", "Fritz%", Hibernate.STRING) ) .list();
 - List cats = sess.createCriteria(Cat.class)
 - .add( Restrictions.sql("lower({alias}.name) like lower(?)", "Fritz%", Hibernate.STRING) ) .list();
 
{alias}占位符应当被替换为被查询实体的列别名。 Property实例是获得一个条件的另外一种途径。你可以通过调用Property.forName() 创建一个 Property。
- Java代码
 - 1. Property age = Property.forName("age");
 - 2.
 - 3.List cats = sess.createCriteria(Cat.class)
 - 4.
 - 5..add( Restrictions.disjunction()
 - 6.
 - 7..add( age.isNull() )
 - 8.
 - 9..add( age.eq( new Integer(0) ) )
 - 10.
 - 11..add( age.eq( new Integer(1) ) )
 - 12.
 - 13..add( age.eq( new Integer(2) ) ) ) )
 - 14.
 - 15..add( Property.forName("name").in( new String[] { "Fritz", "Izi", "Pk" } ) )
 - 16.
 - 17..list();
 - Property age = Property.forName("age");
 - List cats = sess.createCriteria(Cat.class)
 - .add( Restrictions.disjunction()
 - .add( age.isNull() )
 - .add( age.eq( new Integer(0) ) )
 - .add( age.eq( new Integer(1) ) )
 - .add( age.eq( new Integer(2) ) ) ) )
 - .add( Property.forName("name").in( new String[] { "Fritz", "Izi", "Pk" } ) )
 - .list();
 
3. 结果集排序你可以使用org.hibernate.criterion.Order来为查询结果排序。
Java代码
- 1.List cats = sess.createCriteria(Cat.class)
 - 2.
 - 3..add( Restrictions.like("name", "F%")
 - 4.
 - 5..addOrder( Order.asc("name") )
 - 6.
 - 7..addOrder( Order.desc("age") )
 - 8.
 - 9..setMaxResults(50)
 - 10.
 - 11..list();
 - 12.
 - 13. List cats = sess.createCriteria(Cat.class)
 - 14.
 - 15..add( Property.forName("name").like("F%") )
 - 16.
 - 17..addOrder( Property.forName("name").asc() )
 - 18.
 - 19..addOrder( Property.forName("age").desc() )
 - 20.
 - 21..setMaxResults(50)
 - 22.
 - 23..list();
 - 24. 4. 关联你可以使用createCriteria()非常容易的在互相关联的实体间建立 约束。
 - 25.
 - 26.List cats = sess.createCriteria(Cat.class)
 - 27.
 - 28..add( Restrictions.like("name", "F%")
 - 29.
 - 30..createCriteria("kittens")
 - 31.
 - 32..add( Restrictions.like("name", "F%")
 - 33.
 - 34..list();
 
35.  
36.注意第二个 createCriteria()返回一个新的 Criteria实例,该实例引用kittens 集合中的元素。 接下来,替换形态在某些情况下也是很有用的。     
37.
- 38.List cats = sess.createCriteria(Cat.class)
 - 39.
 - 40. .createAlias("kittens", "kt")
 - 41.
 - 42..createAlias("mate", "mt")
 - 43.
 - 44..add( Restrictions.eqProperty("kt.name", "mt.name") )
 - 45.
 - 46..list();
 - 47.
 
48. (createAlias()并不创建一个新的 Criteria实例。) Cat实例所保存的之前两次查询所返回的kittens集合是 没有被条件预过滤的。如果你希望只获得 符合条件的kittens, 你必须使用returnMaps()。
- 49.
 - 50.List cats = sess.createCriteria(Cat.class)
 - 51.
 - 52..createCriteria("kittens", "kt")
 - 53.
 - 54..add( Restrictions.eq("name", "F%") )
 - 55.
 - 56..returnMaps()
 - 57.
 - 58..list();
 - 59.
 - 60.Iterator iter = cats.iterator(); while ( iter.hasNext() ) {
 - 61.
 - 62. Map map = (Map) iter.next();
 - 63.
 - 64. Cat cat = (Cat) map.get(Criteria.ROOT_ALIAS);
 - 65.
 - 66. Cat kitten = (Cat) map.get("kt");
 - 67.
 - 68.}
 - List cats = sess.createCriteria(Cat.class)
 - .add( Restrictions.like("name", "F%")
 - .addOrder( Order.asc("name") )
 - .addOrder( Order.desc("age") )
 - .setMaxResults(50)
 - .list();
 - List cats = sess.createCriteria(Cat.class)
 - .add( Property.forName("name").like("F%") )
 - .addOrder( Property.forName("name").asc() )
 - .addOrder( Property.forName("age").desc() )
 - .setMaxResults(50)
 - .list();
 - 4. 关联你可以使用createCriteria()非常容易的在互相关联的实体间建立 约束。
 - List cats = sess.createCriteria(Cat.class)
 - .add( Restrictions.like("name", "F%")
 - .createCriteria("kittens")
 - .add( Restrictions.like("name", "F%")
 - .list();
 
注意第二个 createCriteria()返回一个新的 Criteria实例,该实例引用kittens 集合中的元素。 接下来,替换形态在某些情况下也是很有用的。
- List cats = sess.createCriteria(Cat.class)
 - .createAlias("kittens", "kt")
 - .createAlias("mate", "mt")
 - .add( Restrictions.eqProperty("kt.name", "mt.name") )
 - .list();
 - (createAlias()并不创建一个新的 Criteria实例。) Cat实例所保存的之前两次查询所返回的kittens集合是 没有被条件预过滤的。如果你希望只获得 符合条件的kittens, 你必须使用returnMaps()。
 - List cats = sess.createCriteria(Cat.class)
 - .createCriteria("kittens", "kt")
 - .add( Restrictions.eq("name", "F%") )
 - .returnMaps()
 - .list();
 - Iterator iter = cats.iterator(); while ( iter.hasNext() ) {
 - Map map = (Map) iter.next();
 - Cat cat = (Cat) map.get(Criteria.ROOT_ALIAS);
 - Cat kitten = (Cat) map.get("kt");
 - }
 
5. 动态关联抓取你可以使用setFetchMode()在运行时定义动态关联抓取的语义。
Java代码
- 1.List cats = sess.createCriteria(Cat.class)
 - 2.
 - 3..add( Restrictions.like("name", "Fritz%") )
 - 4.
 - 5..setFetchMode("mate", FetchMode.EAGER)
 - 6.
 - 7..setFetchMode("kittens", FetchMode.EAGER)
 - 8.
 - 9..list();
 - List cats = sess.createCriteria(Cat.class)
 - .add( Restrictions.like("name", "Fritz%") )
 - .setFetchMode("mate", FetchMode.EAGER)
 - .setFetchMode("kittens", FetchMode.EAGER)
 - .list();
 
这个查询可以通过外连接抓取mate和kittens。
6. 查询示例 org.hibernate.criterion.Example类允许你通过一个给定实例 构建一个条件查询。
Java代码
- 1.Cat cat = new Cat();
 - 2.
 - 3.cat.setSex('F');
 - 4.
 - 5.cat.setColor(Color.BLACK);
 - 6.
 - 7.List results = session.createCriteria(Cat.class)
 - 8.
 - 9..add( Example.create(cat) )
 - 10.
 - 11..list();
 - Cat cat = new Cat();
 - cat.setSex('F');
 - cat.setColor(Color.BLACK);
 - List results = session.createCriteria(Cat.class)
 - .add( Example.create(cat) )
 - .list();
 
版本属性、标识符和关联被忽略。默认情况下值为null的属性将被排除。 可以自行调整Example使之更实用。
甚至可以使用examples在关联对象上放置条件。
Java代码
- 1.Example example = Example.create(cat)
 - 2.
 - 3..excludeZeroes() //exclude zero valued properties
 - 4.
 - 5..excludeProperty("color") //exclude the property named "color"
 - 6.
 - 7..ignoreCase() //perform case insensitive string comparisons
 - 8.
 - 9..enableLike(); //use like for string comparisons
 - 10.
 - 11.List results = session.createCriteria(Cat.class)
 - 12.
 - 13..add(example)
 - 14.
 - 15..list();
 - 16.
 - 17.List results = session.createCriteria(Cat.class)
 - 18.
 - 19..add( Example.create(cat) ) .createCriteria("mate")
 - 20.
 - 21..add( Example.create( cat.getMate() ) )
 - 22.
 - 23. .list();
 - Example example = Example.create(cat)
 - .excludeZeroes() //exclude zero valued properties
 - .excludeProperty("color") //exclude the property named "color"
 - .ignoreCase() //perform case insensitive string comparisons
 - .enableLike(); //use like for string comparisons
 - List results = session.createCriteria(Cat.class)
 - .add(example)
 - .list();
 - List results = session.createCriteria(Cat.class)
 - .add( Example.create(cat) ) .createCriteria("mate")
 - .add( Example.create( cat.getMate() ) )
 - .list();
 
7. 投影(Projections)、聚合(aggregation)和分组(grouping) org.hibernate.criterion.Projections是 Projection 的实例工厂。我们通过调用 setProjection()应用投影到一个查询。
Java代码
- 1.List results = session.createCriteria(Cat.class)
 - 2.
 - 3..setProjection( Projections.rowCount() )
 - 4.
 - 5..add( Restrictions.eq("color", Color.BLACK) )
 - 6.
 - 7..list();
 - 8.
 - 9.List results = session.createCriteria(Cat.class)
 - 10.
 - 11..setProjection( Projections.projectionList()
 - 12.
 - 13..add( Projections.rowCount() )
 - 14.
 - 15..add( Projections.avg("weight") )
 - 16.
 - 17..add( Projections.max("weight") )
 - 18.
 - 19..add( Projections.groupProperty("color") ) )
 - 20.
 - 21..list();
 - 22.
 
23.在一个条件查询中没有必要显式的使用 "group by" 。某些投影类型就是被定义为 分组投影,他 们也出现在SQL的group by子句中。 可以选择把一个别名指派给一个投影,这样可以使投影值被约束或排序所引用。下面是两种不同的 实现方式: List results = session.createCriteria(Cat.class)
- 24.
 - 25..setProjection( Projections.alias( Projections.groupProperty("color"), "colr" ) ) .addOrder( Order.asc("colr") )
 - 26.
 - 27..list();
 - 28.
 - 29.
 - 30.
 - 31.List results = session.createCriteria(Cat.class)
 - 32.
 - 33..setProjection( Projections.groupProperty("color").as("colr") )
 - 34.
 - 35..addOrder( Order.asc("colr") )
 - 36.
 - 37..list();
 - 38.
 
39.alias()和as()方法简便的将一个投影实例包装到另外一个 别名的Projection实例中。简而言之, 当你添加一个投影到一个投影列表中时 你可以为它指定一个别名:
- List results = session.createCriteria(Cat.class)
 - 40.
 - 41..setProjection( Projections.projectionList()
 - 42.
 - 43..add( Projections.rowCount(), "catCountByColor" )
 - 44.
 - 45..add( Projections.avg("weight"), "avgWeight" )
 - 46.
 - 47..add( Projections.max("weight"), "maxWeight" )
 - 48.
 - 49..add( Projections.groupProperty("color"), "color" ) )
 - 50.
 - 51..addOrder( Order.desc("catCountByColor") )
 - 52.
 - 53..addOrder( Order.desc("avgWeight") )
 - 54.
 - 55..list();
 - 56.
 - 57. List results = session.createCriteria(Domestic.class, "cat")
 - 58.
 - 59..createAlias("kittens", "kit")
 - 60.
 - 61..setProjection( Projections.projectionList()
 - 62.
 - 63..add( Projections.property("cat.name"), "catName" )
 - 64.
 - 65..add( Projections.property("kit.name"), "kitName" ) )
 - 66.
 - 67..addOrder( Order.asc("catName") )
 - 68.
 - 69..addOrder( Order.asc("kitName") )
 - 70.
 - 71..list();
 - 72.
 - 73.也可以使用Property.forName()来表示投影:
 - 74.
 - 75.List results = session.createCriteria(Cat.class)
 - 76.
 - 77..setProjection( Property.forName("name") )
 - 78.
 - 79..add( Property.forName("color").eq(Color.BLACK) )
 - 80.
 - 81..list();
 - 82.
 - 83. List results = session.createCriteria(Cat.class)
 - 84.
 - 85..setProjection( Projections.projectionList()
 - 86.
 - 87..add( Projections.rowCount().as("catCountByColor") )
 - 88.
 - 89..add( Property.forName("weight").avg().as("avgWeight") )
 - 90.
 - 91..add( Property.forName("weight").max().as("maxWeight") )
 - 92.
 - 93..add( Property.forName("color").group().as("color" ) )
 - 94.
 - 95..addOrder( Order.desc("catCountByColor") )
 - 96.
 - 97..addOrder( Order.desc("avgWeight") )
 - 98.
 - 99..list();
 - List results = session.createCriteria(Cat.class)
 - .setProjection( Projections.rowCount() )
 - .add( Restrictions.eq("color", Color.BLACK) )
 - .list();
 - List results = session.createCriteria(Cat.class)
 - .setProjection( Projections.projectionList()
 - .add( Projections.rowCount() )
 - .add( Projections.avg("weight") )
 - .add( Projections.max("weight") )
 - .add( Projections.groupProperty("color") ) )
 - .list();
 - 在一个条件查询中没有必要显式的使用 "group by" 。某些投影类型就是被定义为 分组投影,他 们也出现在SQL的group by子句中。 可以选择把一个别名指派给一个投影,这样可以使投影值被约束或排序所引用。下面是两种不同的 实现方式: List results = session.createCriteria(Cat.class)
 - .setProjection( Projections.alias( Projections.groupProperty("color"), "colr" ) ) .addOrder( Order.asc("colr") )
 - .list();
 - List results = session.createCriteria(Cat.class)
 - .setProjection( Projections.groupProperty("color").as("colr") )
 - .addOrder( Order.asc("colr") )
 - .list();
 
alias()和as()方法简便的将一个投影实例包装到另外一个 别名的Projection实例中。简而言之, 当你添加一个投影到一个投影列表中时 你可以为它指定一个别名:
- List results = session.createCriteria(Cat.class)
 - .setProjection( Projections.projectionList()
 - .add( Projections.rowCount(), "catCountByColor" )
 - .add( Projections.avg("weight"), "avgWeight" )
 - .add( Projections.max("weight"), "maxWeight" )
 - .add( Projections.groupProperty("color"), "color" ) )
 - .addOrder( Order.desc("catCountByColor") )
 - .addOrder( Order.desc("avgWeight") )
 - .list();
 - List results = session.createCriteria(Domestic.class, "cat")
 - .createAlias("kittens", "kit")
 - .setProjection( Projections.projectionList()
 - .add( Projections.property("cat.name"), "catName" )
 - .add( Projections.property("kit.name"), "kitName" ) )
 - .addOrder( Order.asc("catName") )
 - .addOrder( Order.asc("kitName") )
 - .list();
 - 也可以使用Property.forName()来表示投影:
 - List results = session.createCriteria(Cat.class)
 - .setProjection( Property.forName("name") )
 - .add( Property.forName("color").eq(Color.BLACK) )
 - .list();
 - List results = session.createCriteria(Cat.class)
 - .setProjection( Projections.projectionList()
 - .add( Projections.rowCount().as("catCountByColor") )
 - .add( Property.forName("weight").avg().as("avgWeight") )
 - .add( Property.forName("weight").max().as("maxWeight") )
 - .add( Property.forName("color").group().as("color" ) )
 - .addOrder( Order.desc("catCountByColor") )
 - .addOrder( Order.desc("avgWeight") )
 - .list();
 
8. 离线(detached)查询和子查询 DetachedCriteria类使你在一个session范围之外创建一个查询,并且可以使用任意的 Session来 执行它。
Java代码
- 1.DetachedCriteria query = DetachedCriteria.forClass(Cat.class)
 - 2.
 - 3..add( Property.forName("sex").eq('F') );
 - 4.
 - 5.//创建一个Session
 - 6.
 - 7.Session session = .;
 - 8.
 - 9.Transaction txn = session.beginTransaction();
 - 10.
 - 11.List results = query.getExecutableCriteria(session).setMaxResults(100).list();
 - 12.
 - 13.txn.commit();
 - 14.
 - 15.session.close();
 - 16.
 - 17.DetachedCriteria也可以用以表示子查询。条件实例包含子查询可以通过 Subqueries或者 Property获得。
 - 18.
 - 19.DetachedCriteria avgWeight = DetachedCriteria.forClass(Cat.class)
 - 20.
 - 21..setProjection( Property.forName("weight").avg() );
 - 22.
 - 23.session.createCriteria(Cat.class)
 - 24.
 - 25..add( Property.forName("weight).gt(avgWeight) )
 - 26.
 - 27. .list();
 - 28.
 - 29. DetachedCriteria weights = DetachedCriteria.forClass(Cat.class)
 - 30.
 - 31. .setProjection( Property.forName("weight") );
 - 32.
 - 33.session.createCriteria(Cat.class)
 - 34.
 - 35. .add( Subqueries.geAll("weight", weights) )
 - 36.
 - 37. .list();
 - DetachedCriteria query = DetachedCriteria.forClass(Cat.class)
 - .add( Property.forName("sex").eq('F') );
 - //创建一个Session
 - Session session = .;
 - Transaction txn = session.beginTransaction();
 - List results = query.getExecutableCriteria(session).setMaxResults(100).list();
 - txn.commit();
 - session.close();
 - DetachedCriteria也可以用以表示子查询。条件实例包含子查询可以通过 Subqueries或者 Property获得。
 - DetachedCriteria avgWeight = DetachedCriteria.forClass(Cat.class)
 - .setProjection( Property.forName("weight").avg() );
 - session.createCriteria(Cat.class)
 - .add( Property.forName("weight).gt(avgWeight) )
 - .list();
 - DetachedCriteria weights = DetachedCriteria.forClass(Cat.class)
 - .setProjection( Property.forName("weight") );
 - session.createCriteria(Cat.class)
 - .add( Subqueries.geAll("weight", weights) )
 - .list();
 
HIbernate 查询指定的字段
Criteria c = session.createCriteria(UserVo.class);
ProjectList plist = Projections.projectList().add(Projections.Properties("user_id"));
c.setProjection(plist);
c.list()...
Hibernate Criteria 查询使用的更多相关文章
- hibernate Criteria查询多对多(Set集合)条件筛选
		
PO public class UserPO implements java.io.Serializable { /** 用户唯一标识ID */ private String id; /** 状态(在 ...
 - hibernate Criteria查询 2.3
		
Criteria对象提供了一种面向对象的方式查询数据库.Criteria对象需要使用Session对象来获得一个Criteria对象表示对一个持久化类的查询 查询所有 Session session ...
 - Hibernate框架之Criteria查询 和注解(重点☆☆☆☆☆,难点☆☆☆)
		
写好一篇博客,不是容易的事.原因是:你要给自己以后看的时候,还能看懂,最重要的是当别人看到你的博客文章的时候,也一样很清楚的明白你自己写的东西.其实这也是一种成就感!! 对于每一个知识点,要有必要的解 ...
 - Hibernate框架之Criteria查询
		
首先给大家说说Hibernate检索方式 Hibernate提供了5种检索对象的方式 1.导航对象图检索方式:根据已经加载的对象导航到其他对象 2.OID检索方式:按照对象的OID来检索对象 3.HQ ...
 - Hibernate criteria 混合sql语句多表关联时查询注意事项
		
直接进入正题 假设有一个实体类 /** * 产品分类 */ public class ProductType{ @Id private String no;//编号 private String na ...
 - Hibernate查询之Criteria查询
		
转自:http://www.cnblogs.com/Laupaul/archive/2012/02/15/2353194.html Criteria是一种比hql更面向对象的查询方式.Criteria ...
 - hibernate框架学习笔记11:Criteria查询详解
		
创建实体类对象: package domain; import java.util.HashSet; import java.util.Set; //客户实体 public class Custome ...
 - hibernate框架学习笔记7:HQL查询、Criteria查询简介
		
HQL查询:hibernate独有的查询语言 适用于不复杂的多表查询 示例: 实体类: package domain; public class Customer { private Long cus ...
 - Hibernate的四种查询方式(主键查询,HQL查询,Criteria查询,本地sql查询)和修改和添加
		
Hibernate的添加,修改,查询(三种查询方式)的方法: 案例演示: 1:第一步,导包,老生常谈了都是,省略: 2:第二步,创建数据库和数据表,表结构如下所示: 3:第三步创建实体类User.ja ...
 
随机推荐
- 【原创】关于bug反正出现的问题可能
			
bug修正的问题:1. xib问题.2. 模块不清同时修改.3. svn代码合并的修改熟悉程度.4. 禁止全局格式化代码.
 - ant 报 make sure you have it in your classpath
			
检查build.xml的配置 build.xml配置出错,导致的这个问题
 - Step 2---有关Github的几个问题
			
1.取得项目的Git仓库的方式 第一种是在现存的目录下,通过导入所有文件来创建新的 Git 仓库. 要对现有的某个项目开始用 Git 管理,只需到此项目所在的目录,执行: $ git init 初始化 ...
 - apache环境下禁止某文件夹内运行PHP脚本、禁止访问文件或目录执行权限的设置方法
			
apache环境下禁止某文件夹内运行PHP脚本.禁止访问文件或目录执行权限的设置方法 首先我们来看两段对上传目录设置无权限的列子,配置如下: <Directory "要去掉PHP执 ...
 - android中依据不同分辨率dp和px的相互转算
			
public class PxAndDp { /** * 依据手机的分辨率从 dp 的单位 转成为 px(像素) */ public static int dip2px(Context context ...
 - Solution to Triangle by Codility
			
question: https://codility.com/programmers/lessons/4 we need two parts to prove our solution. on one ...
 - KingdeeK3-修改单据邮件发送的自定义字段
			
只需要执行类似下面语句即可: update ICTemplateentry set FVisForBillType = 63,flookupcls=6 where fid ='P01' and fhe ...
 - Devops成功的八大炫酷工具
			
原文链接:http://www.infoworld.com/article/3031009/devops/8-more-cool-tools-for-devops-success.html 为自动化和 ...
 - 转MQTT--Python进行发布、订阅测试
			
前言 使用python编写程序进行测试MQTT的发布和订阅功能.首先要安装:pip install paho-mqtt 测试发布(pub) 我的MQTT部署在阿里云的服务器上面,所以我在本机上编写 ...
 - MySQL5.5中文支持
			
1. /etc/my.cnf.d/client.cnf [client] #password = [your_password] port = 3306 socket = /tmp/mysql.soc ...