论坛首页 Java企业应用论坛

Hibernate处理数据库分表

浏览 8521 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2005-05-19  
分表在实际项目应用中很多了,jdo2.0支持分表。但在Hibernate3中没有明确提到分表的实现。采用动态映射(dynamic mapping)似乎能解决这个问题。有没有更好的实现呢
   发表时间:2005-05-19  
仔细看了文档,没有提到dinamic models是怎样load的,做了如下尝试:
spring+hibernate3.0.3
映射文件:
<class entity-name="P_PARAMETER1">

    <id name="id"
        type="java.math.BigDecimal"
        length="22"
        column="no"
    >
        <generator class="assigned"/>
    </id>

    <property
        name="value"
        type="java.lang.String"
        column="VALUE"
        length="100"
    />

    <!-- associations -->

</class>

java代码:
private Object getMapObject(){
    String tableName = "P_PARAMETER1";
    final String sql = "from "+tableName + " as p order by p.no";
    return this.getHibernateTemplate().execute(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException {
Session mySession = session.getSession(EntityMode.MAP);
return session.createQuery(sql).list();
}
});
    }
执行后报错:
org.springframework.orm.hibernate3.HibernateQueryException: could not resolve property: no of: P_PARAMETER1 [from P_PARAMETER1 as p order by p.no]; nested exception is org.hibernate.QueryException: could not resolve property: no of: P_PARAMETER1 [from P_PARAMETER1 as p order by p.no]
org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:621)
org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:230)
org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:315)
org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:287)
portalserver.business.impl.ParameterDAOImpl.getMapObject(ParameterDAOImpl.java:96)
portalserver.business.impl.ParameterDAOImpl.getParameters(ParameterDAOImpl.java:63)

恳请各位高手指导一下,应该如果load dynamic models
0 请登录后投票
   发表时间:2005-05-19  
分表是什么意思?
0 请登录后投票
   发表时间:2005-05-19  
final_ww 写道
分表在实际项目应用中很多了,jdo2.0支持分表。但在Hibernate3中没有明确提到分表的实现。采用动态映射(dynamic mapping)似乎能解决这个问题。有没有更好的实现呢


分表就是动态表吧,我也有这个问题。我们原来的系统都是这样设计的可以很好的对数据分流。
0 请登录后投票
   发表时间:2005-05-19  
是的,我们是电信系统,清单表一天一张,不可能全部映射成po,表结构完全相同,按照reference,使用dynamic models可以实现这种需求,但是这种实现方式还是很不方便。希望还是用po来映射,而不是map,也就是一个po对应数据库的多张结构相同的表
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics