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 + -
显示快捷键?