论坛首页 Java企业应用论坛

hibernate3自定义的ID generator

浏览 3519 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2006-12-09  
昨夜分析了一下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文件.不知道大家是否有出现我这种情况.


如切入错,如做做模.
   发表时间: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不是.
0 请登录后投票
论坛首页 Java企业应用版

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