`
superhjw
  • 浏览: 3635 次
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

hibernate3自定义的ID generator

阅读更多
昨夜分析了一下hibernate3的tablegenerator.然后自己扩展了一下.
原因:
  1.我数据库是oracle,使用sequence来做ID Generator对移植性不好.
  2.tablegenerator的id创建方式是以列值来保存值的.而且会创建多个只有一个字段的表.真是浪费.请查看类的实现方法.
  3.我使用的是一个sequence表,里面只有两个字段,tname,tvalue,保存表名key和id值.以行值作为id,有别于tablegenerator.

问题:
   1.hibernate3如果使用sequence是否可以自动创建sequence,我看了hibernate包,是可以的,希望得到大家的验证.
   2.使用自定义的generator,用ant,hbm2java生成java文件的时候,会出现错误:
    大致是不能创建该mygenerator,但是把其改成uuid,就可以生成java文件.不知道大家是否有出现我这种情况.


如切入错,如做做模.
分享到:
评论
1 楼 superhjw 2006-12-13  
非常失望,居然没人回帖.这么个有实力的地方,看来也是徒有其表.
还是我自己回吧.

如果选用sequence会自动建立oracle的sequence,如下;
public String[] sqlCreateStrings(Dialect dialect) throws HibernateException {
		String[] ddl = dialect.getCreateSequenceStrings(sequenceName);
		if ( parameters != null ) {
			ddl[ddl.length - 1] += ' ' + parameters;
		}
		return ddl;
	}

dll提供了createsquence的语句,供接口在generate()前调用.


使用自定义的id generator不能使用typedef预定义.typedef是定义类型的.myGenerator不是.

相关推荐

    hibernate中自动生成主键的办法

    在Hibernate中,可以使用`<generator class="sequence">`来指定使用Sequence作为主键生成策略,并通过`<param name="sequence">SEQ_CHILD</param>`来指定具体的序列名称。这种方式适用于需要生成大量连续主键值的...

    Hibernate 3.x 参考手册

    - 自定义 Hibernate 用于转换 Java 名称至 SQL 名称的策略。 - **XML 配置文件** - 使用 XML 文件指定配置选项。 - **J2EE 应用服务器集成** - **事务策略配置** - 配置 JTA 事务管理器。 - **JNDI-bound ...

    hibernate 3.2中文手册 中文文档

    - 讲解如何自定义Hibernate的命名策略,以便更好地控制字段和表名的生成。 - **3.7 XML配置文件** - 解释如何使用XML配置文件来定义Hibernate的配置信息。 - **3.8 J2EE应用程序服务器的集成** - **3.8.1 事务...

    Hibernate入门 - 基础配置

    在Hibernate 3.x版本中,对数据库约束的支持得到了加强,使用更加便捷。尽管早期有些人认为ORM框架效率较低且不够灵活,但随着程序规模的扩大,ORM的优势逐渐显现,比如避免N+1选择问题,以及简化多表连接操作。...

    详解Hibernate一对一映射配置

    - `formula`属性用于定义自定义SQL表达式来获取属性值。 - `lazy`属性用于控制关联对象的加载策略,`proxy`表示懒加载,`no-proxy`表示立即加载。 了解并掌握这些配置方法,可以帮助开发者更有效地实现Hibernate中...

    spring+hibernate 解决大字段(clob)

    例如,在Oracle 9i中,可以尝试使用自定义类型`org.springframework.orm.hibernate3.support.ClobStringType`。 #### 四、总结 通过以上步骤,我们可以成功地在Spring与Hibernate框架中处理Oracle 10g数据库中的...

    Hibernate关联关系配置

    在Hibernate中,可以通过自定义`<generator>`来实现联合主键。 总之,Hibernate提供了丰富的工具和方法来处理实体之间的关联关系,开发者可以根据实际需求选择合适的配置方式。理解这些关联关系的配置方式对于构建...

    Hibernate 配置跟数据库字段的对应关系

    最后,要注意的是,Hibernate还支持自定义类型映射,通过实现`org.hibernate.usertype.UserType`接口,可以自定义任何复杂的数据类型转换。 总结来说,配置Hibernate与数据库字段的对应关系主要包括以下几个步骤: ...

    hibernate.hbm.xml详解

    - 可自定义主键生成策略,扩展Hibernate类。 2. **普通属性(property)配置**: - `property`元素用于映射实体类的普通属性。`name`属性对应Java类的字段名,`column`指定数据库列名,其他属性如`access`、`type...

    完整Struts2 HIBERNATE实现分页

    3. **配置Hibernate**: - **hibernate.cfg.xml**:这是Hibernate的核心配置文件,用于配置数据源、方言等关键信息。 ```xml <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration...

    hibernate配置二三级缓存

    **3. 配置Hibernate缓存属性** 接下来,在`hibernate.cfg.xml`文件中启用二级缓存并指定缓存提供者。 ```xml <hibernate-configuration> <!-- 数据库连接等配置省略 --> <property name="hibernate.cache.use_...

    Hibernate4实战资料

    本文将深入探讨Hibernate4注解配置的相关知识点,包括@Entity、@Table、@Id、@GeneratedValue、@Column、@Version等核心注解的使用。 首先,我们来看@Entity注解,它是将一个普通的Java类声明为一个实体Bean,这个...

    hibernate v3.04中文参考手册

    - 自定义主键生成策略,如SequenceGenerator、TableGenerator等。 12. **事件监听与拦截器** - 实现Hibernate事件监听器,监听对象的生命周期事件。 - 使用Interceptor,自定义逻辑,如对象的预加载、预更新等。...

    hibernate_reference使用指南全

    允许用户自定义 HQL 或 Criteria 查询中的占位符。 - **3.4.6 Hibernate 统计信息** Hibernate 可以收集并报告运行时统计信息,这对于性能调优非常有用。 - **3.5 日志** Hibernate 使用日志框架(如 Log...

    java根据实体类生成Hibernate映射文件

    此外,对于大型项目,通常会使用代码生成工具(如MyBatis的MyBatis Generator或Hibernate的Hibernate Tools)来自动化这个过程,它们提供了更全面的功能和配置选项。 总的来说,通过编写Java程序自动根据实体类生成...

    用MyEclipse自动生成hibernate映射文件和实体类

    默认情况下,Hibernate可能会选择自动增长策略,但根据实际需求,可能需要使用`assigned`策略,即主键由应用逻辑生成,例如使用序列或自定义ID生成器。修改后的配置如下: ```xml <id name="id" type="java.lang....

    hibernate注解中的名词解释

    此外,还可以通过@SequenceGenerator或@GenericGenerator自定义生成策略。 6. **@SequenceGenerator**: 用于声明一个数据库序列,适用于需要使用序列生成主键的场景。它包含了序列名称、初始值和每次分配的大小等...

Global site tag (gtag.js) - Google Analytics