表结构:TmDictionary
CREATE TABLE ts_data_dic
(
id serial NOT NULL,
value_name character varying(30) NOT NULL, -- 值所对应的描述
value_code character varying(20), -- 所对应的代码值
type_code character varying(20),
type_name character varying(30),
comments character varying(20),
create_by integer,
create_date timestamp without time zone,
last_update_by integer,
last_update_date timestamp without time zone,
row_version numeric(14,0) NOT NULL DEFAULT 0,
isvalid numeric(1,0) NOT NULL DEFAULT 1,
parent_id integer,
editable integer NOT NULL DEFAULT 1,
sort integer,
CONSTRAINT pk_ts_data_dic PRIMARY KEY (id ),
CONSTRAINT fk_ts_data_dic FOREIGN KEY (parent_id)
REFERENCES ts_data_dic (id) MATCH SIMPLE
ON UPDATE RESTRICT ON DELETE RESTRICT
)
实现根据传入的typeCode返回一个Map<valueCode,TmDictionary>
public Map<String, TmDictionary> findByTypeCode(String typeCode){
String hql="select distinct tm from TmDictionary tm left join tm.parent parent where tm.isValid=:isValid and tm.typeCode=:code";
Map<String,Object> params = new HashMap<String, Object>();
params.put("isValid", 1);
params.put("code", typeCode);
List<TmDictionary> list=(List<TmDictionary>) dictionaryDao.query(hql, params);
Map<String,TmDictionary> map=new HashMap<String, TmDictionary>();
for(TmDictionary dic:list){
if(dic==null){
continue;
}
map.put(dic.getValueCode(), dic);
}
return map;
}
测试代码:
@Test
public void findByTypeCode(){
Map<String, TmDictionary> map= ditionaryService.findByTypeCode("lockedname");
for(Entry<String, TmDictionary> entry:map.entrySet()){
System.out.println(entry.getKey()+":"+entry.getValue());
}
}
原文链接:
List:
学号
姓名
班级
1
songjl1
01级1班
2
songjl2
02级1班
3
songjl3
03级1班
转换为Map
List<Student> list = new ArrayList<Student>();
Map<Integer, Student> map = new HashMap<Integer, Student>();
for(Student stu : list){
if(stu==null){
continue;
}
//Student为javabean对象.保存的数据学号,姓名,班级
//以学号作为key.
map.put(stu.getStuNo(), stu);
}