Hibernate FAQ(2)--分页显示和非主键的外键关联
来源:互联网 发布:手机淘宝怎么换客服 编辑:程序博客网 时间:2024/06/05 19:55
编写:徐建祥(netpirate@gmail.com)
时间:2009-04-22 00:02
来自:http://www.anymobile.org
1、分页显示
public class QuizRecordDAO extends BaseHibernateDAO
{
private int count;
public int getCount()
{
return this.count;
}
public List list( int start, int range )
{
log.debug( "finding all QuizRecord instance" );
try
{
Criteria criteria = getSession().createCriteria( QuizRecord.class );
count = ((Number) criteria .setProjection( Projections.rowCount() ).uniqueResult()).intValue();
criteria.setProjection( null );
// criteria.addOrder( Order.desc( TYPE ) );
criteria.setFirstResult( start );
criteria.setMaxResults( range );
return criteria.list();
}
catch ( RuntimeException re )
{
log.error( "find by property name failed", re );
throw re;
}
}
public List list( int awardStatus, int start, int range )
{
log.debug( "finding all QuizRecord instance" );
try
{
Criteria criteria = getSession().createCriteria( QuizRecord.class );
criteria.add( Expression.eq( AWARD_STATUS, Integer.valueOf( awardStatus ) ) );
count = ((Number) criteria .setProjection( Projections.rowCount() ).uniqueResult()).intValue();
criteria.setProjection( null );
// criteria.addOrder( Order.desc( TYPE ) );
criteria.setFirstResult( start );
criteria.setMaxResults( range );
return criteria.list();
}
catch ( RuntimeException re )
{
log.error( "find by property name failed", re );
throw re;
}
}
}
{
private int count;
public int getCount()
{
return this.count;
}
public List list( int start, int range )
{
log.debug( "finding all QuizRecord instance" );
try
{
Criteria criteria = getSession().createCriteria( QuizRecord.class );
count = ((Number) criteria .setProjection( Projections.rowCount() ).uniqueResult()).intValue();
criteria.setProjection( null );
// criteria.addOrder( Order.desc( TYPE ) );
criteria.setFirstResult( start );
criteria.setMaxResults( range );
return criteria.list();
}
catch ( RuntimeException re )
{
log.error( "find by property name failed", re );
throw re;
}
}
public List list( int awardStatus, int start, int range )
{
log.debug( "finding all QuizRecord instance" );
try
{
Criteria criteria = getSession().createCriteria( QuizRecord.class );
criteria.add( Expression.eq( AWARD_STATUS, Integer.valueOf( awardStatus ) ) );
count = ((Number) criteria .setProjection( Projections.rowCount() ).uniqueResult()).intValue();
criteria.setProjection( null );
// criteria.addOrder( Order.desc( TYPE ) );
criteria.setFirstResult( start );
criteria.setMaxResults( range );
return criteria.list();
}
catch ( RuntimeException re )
{
log.error( "find by property name failed", re );
throw re;
}
}
}
2/ 非主键的外键关联
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!--
Mapping file autogenerated by MyEclipse - Hibernate Tools
-->
<hibernate-mapping>
<class name="org.anymobile.admin.entity.QuizRecord" table="quiz_record" catalog="fetion">
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="increment"></generator>
</id>
<many-to-one name="yangzhouUser" class="org.anymobile.admin.entity.User" fetch="select" property-ref="fetionId">
<column name="fetion_id" length="20" not-null="true" />
</many-to-one>
</class>
</hibernate-mapping>
-- property-ref="fetionId"是手工添加的代码<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!--
Mapping file autogenerated by MyEclipse - Hibernate Tools
-->
<hibernate-mapping>
<class name="org.anymobile.admin.entity.QuizRecord" table="quiz_record" catalog="fetion">
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="increment"></generator>
</id>
<many-to-one name="yangzhouUser" class="org.anymobile.admin.entity.User" fetch="select" property-ref="fetionId">
<column name="fetion_id" length="20" not-null="true" />
</many-to-one>
</class>
</hibernate-mapping>
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!--
Mapping file autogenerated by MyEclipse - Hibernate Tools
-->
<hibernate-mapping>
<class name="org.anymobile.admin.entity.User" table="f_user" catalog="fetion">
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="increment"></generator>
</id>
<property name="fetionId" type="java.lang.String">
<column name="fetion_id" length="10" not-null="true" unique="true" />
</property>
<property name="phone" type="java.lang.String">
<column name="phone" length="11" />
</property>
<set name="records" inverse="true">
<!--
<key>
<column name="fetion_id" length="15" not-null="true" />
</key> -->
<key column="fetion_id" property-ref="fetionId"/>
<one-to-many class="org.anymobile.admin.entity.QuizRecord" />
</set>
</class>
</hibernate-mapping>
--绿色注释部分是Hibernate自动生成的,<key column="fetion_id" property-ref="fetionId"/>是手工添加的。<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!--
Mapping file autogenerated by MyEclipse - Hibernate Tools
-->
<hibernate-mapping>
<class name="org.anymobile.admin.entity.User" table="f_user" catalog="fetion">
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="increment"></generator>
</id>
<property name="fetionId" type="java.lang.String">
<column name="fetion_id" length="10" not-null="true" unique="true" />
</property>
<property name="phone" type="java.lang.String">
<column name="phone" length="11" />
</property>
<set name="records" inverse="true">
<!--
<key>
<column name="fetion_id" length="15" not-null="true" />
</key> -->
<key column="fetion_id" property-ref="fetionId"/>
<one-to-many class="org.anymobile.admin.entity.QuizRecord" />
</set>
</class>
</hibernate-mapping>
- Hibernate FAQ(2)--分页显示和非主键的外键关联
- Hibernate 分页显示和非主键的外键关联
- Hibernate配置非主键关联
- 关于Hibernate 重复获取主键和关联类的外键的疑问
- Hibernate基于主键和外键的单向一对一的关联映射
- hibernate many to one 非主键关联
- hibernate 对象关联,映射非主键字段
- hibernate many to one 非主键关联
- Hibernate添加一个非主键关联
- hibernate能否实现非主键一对一关联
- [hibernate property-ref]非主键关联
- hibernate--一对一联合主键外键关联
- 外键关联非主键id时-hbm.xml配置
- Hibernate之关联关系映射(一对一主键映射和一对一外键映射)
- 主键关联和外键关键
- hibernate many to one 非主键关联(收藏)
- hibernate中配置非主键关联(单向一对多)
- Hibernate一对多使用非主键关联设置
- GNU/Linux下文件的压缩与解压
- 从JBuilder 2006到MyEclipse 5.0
- 随机生成N位数字/字母密码
- 事业单位如何改革
- patch 用法
- Hibernate FAQ(2)--分页显示和非主键的外键关联
- MySQL的limit参数
- Oracle 数据库迁移
- JClaim --Java IM 客户端框架
- bash shell 常用快捷键
- 几个检查数据库性能的SQL语句
- “实战OO”学习笔记
- 系统架构师培训总结
- Linux图形界面和命令行界面切换