I am using Drools Flow BAM (5.1.0.M1) module to store the processes instances for audit purpose. I generated the DDL with the help of Hibernate Tools against the MYSQL 5.1(INNODB)

 

DDL for the 2 tables are given below -- the interesting part is the “id” column as “varchar” ---- this gives error when we try to execute the DDL against the mysql.

 

   create table AUDIT_NODE_INSTANCE_LOG (

        id varchar(255) not null auto_increment,

        type integer,

        nodeInstanceId varchar(255),

        nodeId varchar(255),

        processInstanceId bigint,

        processId varchar(255),

        DATE datetime,

        primary key (id)

    ) ENGINE=InnoDB;

 

    create table AUDIT_PROCESS_INSTANCE_LOG (

        id varchar(255) not null auto_increment,

        processInstanceId bigint,

        processId varchar(255),

        START_DATE datetime,

        END_DATE datetime,

        primary key (id)

    ) ENGINE=InnoDB;

 

The error we get is

 

Error: Incorrect column specifier for column 'id'

SQLState:  42000

ErrorCode: 1063

Error occured in:

create table AUDIT_NODE_INSTANCE_LOG (

        id varchar(255) not null auto_increment,

        type integer,

        nodeInstanceId varchar(255),

        nodeId varchar(255),

        processInstanceId bigint,

        processId varchar(255),

        DATE datetime,

        primary key (id)

    ) ENGINE=InnoDB

 

I used a naming strategy for the hibernate that’s why the above table names.

 

My question is when the primary key generation is “native” why not let these columns be of  type ‘long’ and get generated as “bigint” for the sql type.

 

If they can’t be changed – should we just extend the above classes and have these fields as long/bigint.

 

Any suggestion will be appreciated.

 

Thanks

Vijay