主题 : oracle hour函数BUG的修复
级别: 商业授权用户
UID: 19451
积分:234 加为好友
威望: 1 精华: 0
主题:25 回复:136
注册时间:2011-05-12
在线时长:0
1#   发表于:2018-03-26 14:23:43  IP:222.216.*.*
package com.jeecms.common.util;

import org.hibernate.Session;
import org.hibernate.internal.SessionImpl;

import com.alibaba.druid.util.StringUtils;

/**
 * hibernate方言BUG修复
 * @author
 * @create 2018年3月26日 下午1:58:58
 */
public class DialectBugFix {
private Session session;
private String dialectName;
public DialectBugFix(Session session){
this.session = session;
getDbTypName();
}

/**
 * 获取数据库名称类型
 * @return
 */
private String getDbTypName(){
dialectName = ((SessionImpl)session).getFactory().getDialect().getClass().getName();
return dialectName;
}


/**
 * 主要针对oracle的HOUR BUG进行修复
 * @param properties
 * @return
 */
public String hqlHour(String properties){
StringBuilder result = new StringBuilder();
if(StringUtils.isEmpty(properties)){
return null;
}
if(dialectName.toUpperCase().indexOf("ORACLE")>=0){
//oracle
result.append("TO_CHAR(").append(properties).append(",'hh24')");
}else{
result.append("HOUR(").append(properties).append(")");
}
return result.toString();
}
}


这是一个修复bug的工具类,用的时候直接new DialectBugFix(this.getSession()).hqlHour("ext.releaseDate"),作为字符串拼接到HQL就可以了
级别: 总版主
UID: 10736
积分:149787 加为好友
威望: 212 精华: 42
主题:297 回复:127674
注册时间:2010-09-08
在线时长:90.1
2#   发表于:2018-03-26 14:24:32  IP:117.124.*.*
路漫漫其修远兮,吾将上下而求索!
1 共1页