package com.opentravelsoft.providers.hibernate;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
import org.springframework.stereotype.Repository;
import com.opentravelsoft.entity.Pinyin;
import com.opentravelsoft.providers.PinyinDao;
@Repository("PinyinDao")
public class PinyinDaoHibernate extends GenericDaoHibernate<Pinyin, String>
implements PinyinDao {
public PinyinDaoHibernate() {
super(Pinyin.class);
}
@SuppressWarnings("unchecked")
public String getPinyinByName(String name) {
StringBuilder sql = new StringBuilder();
sql.append("from Pinyin ");
sql.append("where chinese in (");
StringBuilder py = new StringBuilder();
char[] ch = name.toCharArray();
StringBuilder sb = new StringBuilder();
int count = 0;
for (char c : ch) {
sb.append("'" + c + "',");
}
if (sb.length() > 0) {
List<Pinyin> pys = getHibernateTemplate().find(
sql.toString() + sb.substring(0, sb.length() - 1) + ")");
Map<String, String> map = new TreeMap<String, String>();
for (Pinyin tfj112 : pys) {
map.put(tfj112.getChinese(), tfj112.getEnglish());
}
for (char c : ch) {
if (null == map.get(String.valueOf(c)))
py.append(c);
else {
py.append(map.get(String.valueOf(c)));
count++;
if (count == 1)
py.append(' ');
}
}
}
return py.toString().trim();
}
}