错误信息:
Not all named parameters have been set: [organ_node] [select id,name from framework@commonsoc:organ_node where removed=0 and parent_resource_id =:id ]
执行代码:
Map<String, Object> params = new HashMap<String, Object>();
String sql ="select id,name from framework@commonsoc:organ_node where removed=0 and parent_resource_id =:id ";
params.put("id", organNodeId);
List<Object[]> list = baseDao.nativeSqlQuery(sql,params);
后来查了资料,找到原因所在,在Hibernate的NativeSQL查询中,凡事冒号(:)标记的,框架都认为这是一个参数,需要在后面传递具体是参数值,在本文中其实这里的(:organ_node)只是一个限定表名,而非参数,在后面传递的参数列表中至传递了一个id,所以Hibernate认为这是一个错误。