`
shendixiong
  • 浏览: 393476 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

hibernate如何返回一个Map对象 以及List<Map<String, Object>>

    博客分类:
  • java
阅读更多
/**
	 * 
	* Discription : 将查询出来的数据转换为Map集合,但前提是只能为一条数据 ,它的key为其查询的字段.
	* @param sql
	* @return
	* Map<String,Object>
	* @date 2013-9-29 下午1:20:50 
	* @throws     
	* @author : shendx
	 */
	@Override
	public Map<String, Object> getQueryResultToMap(final String sql) {
		return (Map<String, Object>) getHibernateTemplate().execute(new HibernateCallback() {
			
			@Override
			public Object doInHibernate(Session session) throws HibernateException,
					SQLException {
				Query query = session.createSQLQuery(sql);
				return (Map)query.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP).uniqueResult(); //返回值为map集合 且为唯一值(只能返回一条数据)
			}
		});
	}
	
	/**
	 * 
	* Discription : 将sql中的全部数据查出来,返回值为一个List<Map<String, Object>>具体用法见
	* @see #getQueryResultToMap(String)
	* @param sql
	* @return
	* List<Map<String,Object>>
	* @date 2013-9-29 下午1:23:20 
	* @throws     
	* @author : shendx
	 */
	@Override
	public List<Map<String, Object>> getQueryResultToListMap(final String sql) {
		return (List<Map<String, Object>>) getHibernateTemplate().execute(new HibernateCallback() {
			
			@Override
			public Object doInHibernate(Session session) throws HibernateException,
					SQLException {
				Query query = session.createSQLQuery(sql);
				return (List)query.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP).list();
			}
		});
	}

 函数 getQueryResultToMap 只能查询一条数据,否则会报错

例如:

select t.id,t.name from tableName t; 那么它在map中的key为id 和name。

当然也可以 select * from tableName;

另外值得注意的是,经过我本地测试如果取别名是报错

 

分享到:
评论

相关推荐

    List<Map>转化为List工具类

    一般使用springjdbc、hibernate的sql查询,库获取到的数据都是List&lt;Map&lt;String, Object&gt;&gt;结果集,如果我们要转化为JavaBean,则需要做一系列的map.get(),然后obj.set()。 此工程中就是解决List&lt;Map&lt;String, Object&gt;...

    springmybatis

    查询出列表,也就是返回list, 在我们这个例子中也就是 List&lt;User&gt; , 这种方式返回数据,需要在User.xml 里面配置返回的类型 resultMap, 注意不是 resultType, 而这个resultMap 所对应的应该是我们自己配置的 ...

    cms后台管理

    protected List&lt;Content&gt; getList(Map&lt;String, TemplateModel&gt; params, Environment env) throws TemplateException { Integer[] ids = DirectiveUtils.getIntArray(PARAM_IDS, params); if (ids != null) { //...

    Hibernate注释大全收藏

    • 属性对应的类型实现了Serializable,则属性被映射为@Basic并在一个列中保存该对象的serialized版本。 • 属性的类型为 java.sql.Clob or java.sql.Blob, 则映射到 @Lob 对应的类型。 映射主键属性 @Id 注解可将...

    java面试宝典

    21、当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递? 10 22、我们在web 应用开发过程中经常遇到输出某种编码的字符,如iso8859-1等,...

    hibernateのHQL

    Hql与Sql 1、HQL是面向对象的,所以HQL与数据库无关 2、HQL最终也会生成SQL,也就是说 HQL使用...d.Map 利用了Map函数,查询两个及两个以上的类属性 d.返回对象 利用了构造函数的形式(Dto) 示例: @Test public void

    针对JPA的活动记录模式ActiveJPA.zip

    Map&lt;String, Object&gt; attributes = new HashMap&lt;String, Object&gt;(); attributes.put("billingAmount", 1000.0); order.updateAttributes(attributes); // Find order item by id within an order ...

    ORM软件monalisa-orm.zip

    这是一款全新的ORM软件(仅依赖一个jar: gson): 如果你觉得hibernate难以驾驭,或许该软件正是你所想要的 如果你觉得mybatis成堆的xml/mapper太繁琐,或许该软件正是你所想要的 ...

    java面试题

    答:String是不可变的对象,每次对String类型进行改变都相当于产生了一个新的对象,StringBuffer是可变的字符序列,所以如果要经常改变某个字符串的话建议使用StringBuffer。 list、set、map问题? 答:set 不允许...

    JAVA面试题 对JAVA面试有帮助!

     第三十,当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?  第三十一,swtich是否能作用在byte上,是否能作用在long上,是否能...

    千方百计笔试题大全

    21、当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递? 10 22、我们在web 应用开发过程中经常遇到输出某种编码的字符,如iso8859-1等,...

    最新Java面试宝典pdf版

    52、当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法? 33 53、线程的基本概念、线程的基本状态以及状态之间的关系 34 54、简述synchronized和java.util.concurrent.locks.Lock...

    Java面试笔试资料大全

    52、当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法? 33 53、线程的基本概念、线程的基本状态以及状态之间的关系 34 54、简述synchronized和java.util.concurrent.locks.Lock...

    Java面试宝典2010版

    52、当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法? 53、线程的基本概念、线程的基本状态以及状态之间的关系 54、简述synchronized和java.util.concurrent.locks.Lock的...

    Java面试宝典-经典

    52、当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法? 33 53、线程的基本概念、线程的基本状态以及状态之间的关系 34 54、简述synchronized和java.util.concurrent.locks.Lock...

    JAVA面试宝典2010

    52、当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法? 33 53、线程的基本概念、线程的基本状态以及状态之间的关系 34 54、简述synchronized和java.util.concurrent.locks.Lock...

    java面试题大全(2012版)

    52、当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法? 33 53、线程的基本概念、线程的基本状态以及状态之间的关系 34 54、简述synchronized和java.util.concurrent.locks.Lock...

    Java面试宝典2012版

    52、当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法? 33 53、线程的基本概念、线程的基本状态以及状态之间的关系 34 54、简述synchronized和java.util.concurrent.locks....

Global site tag (gtag.js) - Google Analytics