CompassUitls参照hibernate

/**
*
*/
package com.tnc.lucene.util;

import org.apache.log4j.Logger;
import org.compass.core.Compass;
import org.compass.core.CompassSession;
import org.compass.core.CompassTransaction;
import org.compass.core.CompassTransaction.TransactionIsolation;
import org.compass.core.config.CompassConfiguration;

/**
* @author zhangleming_2007-9-30
*
*/
public class CompassUtils {

final static Logger logger=Logger.getLogger(CompassUtils.class);

private static CompassConfiguration config = null;

private static Compass compass = null;

private static final ThreadLocal<CompassSession> threadSession = new ThreadLocal<CompassSession>();

private static final ThreadLocal<CompassTransaction> threadTransaction = new ThreadLocal<CompassTransaction>();

/**
* zhangleming_2007-9-30
*/
public CompassUtils() {
}

static{
config = new CompassConfiguration()
.configure("/com/tnc/compass/tindex/tnc.cfg.xml");
compass = config.buildCompass();
}

public static Compass getCompass() {
return compass;
}

public static void setCompass(Compass compass) {
CompassUtils.compass = compass;
}
/**
* 重建compass
* @param config
*/
public static void rebuildCompass( CompassConfiguration config){
synchronized(compass){
compass=config.buildCompass();
CompassUtils.config=config;

}
}
/**
* 打开Session
* @return
*/
public static CompassSession openSession(){
CompassSession s=(CompassSession)threadSession.get();
if(s==null){
logger.debug("Open new CompassSession for thread");
s=getCompass().openSession();
threadSession.set(s);
}

return s;
}
/**
* 关闭CompassSesion
*
*/
public static void closeSession(){
CompassSession s=(CompassSession)threadSession.get();
threadSession.set(null);
if(s!=null){
logger.debug("Colse CompassSession of the thread");
s.close();
}
}
/**
* 事务启动
*
*/
public static void beginTransaction(){
CompassTransaction transaction=(CompassTransaction)threadTransaction.get();
if(transaction==null){
logger.debug("Open new CompassTransaction for thread");
transaction=CompassUtils.openSession().beginTransaction();
threadTransaction.set(transaction);
}
}

public static void beginTransaction(TransactionIsolation ti){
CompassTransaction transaction=(CompassTransaction)threadTransaction.get();
if(transaction==null){
logger.debug("Open new CompassTransaction for thread");
transaction=CompassUtils.openSession().beginTransaction(ti);
threadTransaction.set(transaction);
}
}
/**
* 事务提交
*
*/
public static void commitTransaction(){
CompassTransaction transaction=(CompassTransaction)threadTransaction.get();
if(transaction!=null&&!transaction.wasCommitted()&&!transaction.wasRolledBack()){
logger.debug("CompassTransaction is committing in the thread");
transaction.commit();
}
threadTransaction.set(null);
}
/**
* 回滚事务
*
*/
public static void rollbackTransaction(){
CompassTransaction transaction=(CompassTransaction)threadTransaction.get();
if(transaction!=null&&!transaction.wasCommitted()&&!transaction.wasRolledBack()){
logger.debug("try to rollback CompassTransaction in the Thread");
transaction.rollback();
}
threadTransaction.set(null);
}
}
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值