您好,欢迎访问一九零五行业门户网

让Hibernate支持Oracle中的函数

the oracle9dialect dialect has been deprecated; use either oracle9idialect or oracle10gdialect instead那是因为 dialect 未
the oracle9dialect dialect has been deprecated; use either oracle9idialect or oracle10gdialect instead
那是因为 dialect  未定义,重写类,把未定义的dialect 注册一下即可,,
并且在 hibernate.cfg.xml中加入
org.hibernate.dialect.oraclecustomdialect
新建一个类叫oraclecustomdialect
protected dialect() {   
    log.info( using dialect: + this );   
    sqlfunctions.putall( standard_aggregate_functions );   
    // standard sql92 functions (can be overridden by subclasses)   
    registerfunction( substring, new sqlfunctiontemplate( hibernate.string, substring(?1, ?2, ?3) ) );   
    registerfunction( locate, new sqlfunctiontemplate( hibernate.integer, locate(?1, ?2, ?3) ) );   
    registerfunction( trim, new sqlfunctiontemplate( hibernate.string, trim(?1 ?2 ?3 ?4) ) );   
    registerfunction( length, new standardsqlfunction( length, hibernate.integer ) );   
    registerfunction( bit_length, new standardsqlfunction( bit_length, hibernate.integer ) );   
    registerfunction( coalesce, new standardsqlfunction( coalesce ) );   
    registerfunction( nullif, new standardsqlfunction( nullif ) );   
    registerfunction( abs, new standardsqlfunction( abs ) );   
    registerfunction( mod, new standardsqlfunction( mod, hibernate.integer) );   
    registerfunction( sqrt, new standardsqlfunction( sqrt, hibernate.double) );   
    registerfunction( upper, new standardsqlfunction(upper) );   
    registerfunction( lower, new standardsqlfunction(lower) );   
    registerfunction( cast, new castfunction() );   
    registerfunction( extract, new sqlfunctiontemplate(hibernate.integer, extract(?1 ?2 ?3)) );
//map second/minute/hour/day/month/year to ansi extract(), override on subclasses   
    registerfunction( second, new sqlfunctiontemplate(hibernate.integer, extract(second from ?1)) );   
    registerfunction( minute, new sqlfunctiontemplate(hibernate.integer, extract(minute from ?1)) );   
    registerfunction( hour, new sqlfunctiontemplate(hibernate.integer, extract(hour from ?1)) );   
    registerfunction( day, new sqlfunctiontemplate(hibernate.integer, extract(day from ?1)) );   
    registerfunction( month, new sqlfunctiontemplate(hibernate.integer, extract(month from ?1)) );   
    registerfunction( year, new sqlfunctiontemplate(hibernate.integer, extract(year from ?1)) );
registerfunction( str, new sqlfunctiontemplate(hibernate.string, cast(?1 as char)) );
// register hibernate types for default use in scalar sqlquery type auto detection   
    registerhibernatetype( types.bigint, hibernate.big_integer.getname() );   
    registerhibernatetype( types.binary, hibernate.binary.getname() );   
    registerhibernatetype( types.bit, hibernate.boolean.getname() );   
    registerhibernatetype( types.char, hibernate.character.getname() );   
    registerhibernatetype( types.date, hibernate.date.getname() );   
    registerhibernatetype( types.double, hibernate.double.getname() );   
    registerhibernatetype( types.float, hibernate.float.getname() );   
    registerhibernatetype( types.integer, hibernate.integer.getname() );   
    registerhibernatetype( types.smallint, hibernate.short.getname() );   
    registerhibernatetype( types.tinyint, hibernate.byte.getname() );   
    registerhibernatetype( types.time, hibernate.time.getname() );   
    registerhibernatetype( types.timestamp, hibernate.timestamp.getname() );   
    registerhibernatetype( types.varchar, hibernate.string.getname() );   
    registerhibernatetype( types.varbinary, hibernate.binary.getname() );   
    registerhibernatetype( types.numeric, hibernate.big_decimal.getname() );   
    registerhibernatetype( types.decimal, hibernate.big_decimal.getname() );   
    registerhibernatetype( types.blob, hibernate.blob.getname() );   
    registerhibernatetype( types.clob, hibernate.clob.getname() );   
    registerhibernatetype( types.real, hibernate.float.getname() ); 
protected dialect() {
log.info( using dialect: + this );
sqlfunctions.putall( standard_aggregate_functions );
// standard sql92 functions (can be overridden by subclasses)
registerfunction( substring, new sqlfunctiontemplate( hibernate.string, substring(?1, ?2, ?3) ) );
registerfunction( locate, new sqlfunctiontemplate( hibernate.integer, locate(?1, ?2, ?3) ) );
registerfunction( trim, new sqlfunctiontemplate( hibernate.string, trim(?1 ?2 ?3 ?4) ) );
registerfunction( length, new standardsqlfunction( length, hibernate.integer ) );
registerfunction( bit_length, new standardsqlfunction( bit_length, hibernate.integer ) );
registerfunction( coalesce, new standardsqlfunction( coalesce ) );
registerfunction( nullif, new standardsqlfunction( nullif ) );
registerfunction( abs, new standardsqlfunction( abs ) );
registerfunction( mod, new standardsqlfunction( mod, hibernate.integer) );
registerfunction( sqrt, new standardsqlfunction( sqrt, hibernate.double) );
registerfunction( upper, new standardsqlfunction(upper) );
registerfunction( lower, new standardsqlfunction(lower) );
registerfunction( cast, new castfunction() );
registerfunction( extract, new sqlfunctiontemplate(hibernate.integer, extract(?1 ?2 ?3)) );
//map second/minute/hour/day/month/year to ansi extract(), override on subclasses
registerfunction( second, new sqlfunctiontemplate(hibernate.integer, extract(second from ?1)) );
registerfunction( minute, new sqlfunctiontemplate(hibernate.integer, extract(minute from ?1)) );
registerfunction( hour, new sqlfunctiontemplate(hibernate.integer, extract(hour from ?1)) );
registerfunction( day, new sqlfunctiontemplate(hibernate.integer, extract(day from ?1)) );
registerfunction( month, new sqlfunctiontemplate(hibernate.integer, extract(month from ?1)) );
registerfunction( year, new sqlfunctiontemplate(hibernate.integer, extract(year from ?1)) );
registerfunction( str, new sqlfunctiontemplate(hibernate.string, cast(?1 as char)) );
 // register hibernate types for default use in scalar sqlquery type auto detection
registerhibernatetype( types.bigint, hibernate.big_integer.getname() );
registerhibernatetype( types.binary, hibernate.binary.getname() );
registerhibernatetype( types.bit, hibernate.boolean.getname() );
registerhibernatetype( types.char, hibernate.character.getname() );
registerhibernatetype( types.date, hibernate.date.getname() );
registerhibernatetype( types.double, hibernate.double.getname() );
registerhibernatetype( types.float, hibernate.float.getname() );
registerhibernatetype( types.integer, hibernate.integer.getname() );
registerhibernatetype( types.smallint, hibernate.short.getname() );
registerhibernatetype( types.tinyint, hibernate.byte.getname() );
registerhibernatetype( types.time, hibernate.time.getname() );
registerhibernatetype( types.timestamp, hibernate.timestamp.getname() );
registerhibernatetype( types.varchar, hibernate.string.getname() );
registerhibernatetype( types.varbinary, hibernate.binary.getname() );
registerhibernatetype( types.numeric, hibernate.big_decimal.getname() );
registerhibernatetype( types.decimal, hibernate.big_decimal.getname() );
registerhibernatetype( types.blob, hibernate.blob.getname() );
registerhibernatetype( types.clob, hibernate.clob.getname() );
registerhibernatetype( types.real, hibernate.float.getname() );
其它类似信息

推荐信息