现在有一张表  表里有两个字段 : ID  与 tranSactionCode ID 在Hibernate 映射文件中 如下:<id column="ID" name="id">
<generator class="sequence">  
       <param name="sequence">USER_ACCOUNT_RECORD_SEQ</param>  
</generator> 
</id>用oracle 序列生成。这没有什么异议但tranSactionCode 也想用 oracle序列 TRANSACTIONCODE_SEQ 生成, 这怎么解决?现 tranSactionCode 在 Hibernate 映射文件中的配置:<property name="tranSactionCode" column="TRANSACTIONCODE" />

解决方案 »

  1.   

    class=“native”   直接解决
      

  2.   

    呵呵 实在不行的话,建表的时候搞两个序列;
    eg:
    SQL> create table zdy(ids number,ids1 number);
     
    Table created
     
    SQL> create sequence zdy1;
     
    Sequence created
     
    SQL> create sequence zdy2;
     
    Sequence created
     
    SQL> insert into zdy values(zdy1.nextval,zdy2.nextval);
     
    1 row inserted
     
    SQL> insert into zdy values(zdy1.nextval,zdy2.nextval);
     
    1 row inserted
     
    SQL> insert into zdy values(zdy1.nextval,zdy2.nextval);
     
    1 row inserted
     
    SQL> select * from zdy;
     
           IDS       IDS1
    ---------- ----------
             1          1
             2          2
             3          3
      

  3.   

    查查hibernate文档吧,native是根据不同的数据库,采用不同的主键生成策略!
      

  4.   


    我要使用Hibernate 映谢文件配置啊。 要是直接用Sql语来插入,
    使用这个倒很好解决
      

  5.   

    tranSactionCode
    字段自己赋值吧。
    写个自定义函数。函数内容select TRANSACTIONCODE_SEQ.nextval FROM dual;
    持久化时自己设置这个值。
      

  6.   


    结贴。。问题解决List list=session.createSQLQuery("select TRANSACTIONCODE_SEQ.nextval FROM dual").list();这个方法不是很好。要先查询再附进去,再对实体Save
      

  7.   


    楼主试试,定义两个<id>标签??
      

  8.   


    试了。不可以的。。
    一个class下只能有一个id标签