java.lang.ClassCastException: java.math.BigInteger cannot be cast to java.lang.Long

在hibernate自动创建表的时候,主键设置为Long类型,在数据库中存的是bigint类型。如果返回为map类型的多表查询时,强转Long就会报类型转换异常。
DAO:

Query query = session.createSQLQuery(sql).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);

Service:

Long id= (Long)map.get("id");

解决办法:

Long id= ((BigInteger)map.get("id")).longValue();

更多推荐