hibernatemultilanguagedao.java

来自「OBPM是一个开源」· Java 代码 · 共 85 行

JAVA
85
字号
package cn.myapps.core.multilanguage.dao;

import java.util.Collection;
import java.util.HashMap;

import cn.myapps.base.dao.HibernateBaseDAO;
import cn.myapps.base.dao.ValueObject;
import cn.myapps.core.multilanguage.ejb.LanguageType;
import cn.myapps.core.multilanguage.ejb.MultiLanguage;
import cn.myapps.util.sequence.Sequence;

public class HibernateMultiLanguageDAO extends HibernateBaseDAO implements
		MultiLanguageDAO {

	private static HashMap _cache = new HashMap(500);

	public HibernateMultiLanguageDAO(String voClassName) {
		super(voClassName);
	}

	public MultiLanguage find(int languageType, String label) throws Exception {
		MultiLanguage ml = (MultiLanguage)_cache.get(languageType+"-"+label); 
		if (ml!=null) {
			return ml;
		}
		
		String hql = "FROM " + _voClazzName + " vo WHERE vo.type='"
				+ languageType + "' and vo.label='" + label + "'";

		Collection colls = super.getDatas(hql, null);
		if (colls != null && colls.size() > 0) {
			ml = (MultiLanguage) colls.iterator().next();
			_cache.put(languageType+"-"+label,ml);
			return ml;
		}
		else {
			ml = new MultiLanguage();
			ml.setId(Sequence.getSequence());
			ml.setType(LanguageType.LANGUAGE_TYPE_ENGLISH);
			ml.setLabel(label);
			ml.setText(label);
			_cache.put(languageType+"-"+label,ml);
			return ml;
		}
	}

	public void create(ValueObject vo) throws Exception {
		try {
			super.create(vo);
		} catch (Exception e) {
			throw e;
		}
		if (vo!=null) {
			MultiLanguage ml = (MultiLanguage)vo;
			_cache.put(ml.getType()+"-"+ml.getLabel(),vo);
		}
	}

	public void remove(String id) throws Exception {
		MultiLanguage ml = null;
		try {
			ml = (MultiLanguage)super.find(id);
			super.remove(id);
		} catch (Exception e) {
			throw e;
		}
		
		if (ml!=null) {
			_cache.remove(ml.getType()+"-"+ml.getLabel());
		}
	}

	public void update(ValueObject vo) throws Exception {
		try {
			super.update(vo);
		} catch (Exception e) {
			throw e;
		}
		if (vo!=null) {
			MultiLanguage ml = (MultiLanguage)vo;
			_cache.put(ml.getType()+"-"+ml.getLabel(),vo);
		}
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?