我必须在 Hibernate 中转换以下 NamedSqlParameterSource:-
final List<MenuActionMapping> menusList;
MapSqlParameterSource sqlParams = new MapSqlParameterSource();
menusList = namedParameterJdbcTemplate.query("call sp_proc()",sqlParams ,new RowMapper<MenuActionMapping>() {
@Override
public MenuActionMapping mapRow(ResultSet resultset, int i)
throws SQLException {
MenuActionMapping menuActionMapping=new MenuActionMapping();
menuActionMapping.setMenuKey(resultset.getString("KMM_MENU_KEY"));
menuActionMapping.setDisplayName(resultset.getString("KMM_DISPLAY_NAME"));
menuActionMapping.setMenuActionFlag(resultset.getInt("KMM_ACTION_FLAG"));
menuActionMapping.setMenuActive(resultset.getInt("KMM_ACTIVE"));
menuActionMapping.setMenuLevel(resultset.getInt("str_len"));
String str=resultset.getString("menu_actions");
String [] actions=str.split(",");
if(resultset.getInt("KRMM_ACTIVE")==1)
{
menuActionMapping.setActive(true);
}
else
{
menuActionMapping.setActive(false);
}
for(String strAct:actions)
{
if(strAct.equals("ADD"))
{
menuActionMapping.setAddCheckBox(true);
menuActionMapping.setAddCheckBoxDisabled("true");
}
if(strAct.equals("VIEW"))
{
menuActionMapping.setViewCheckBox(true);
menuActionMapping.setViewCheckBoxDisabled("true");
}
if(strAct.equals("DELETE"))
{
menuActionMapping.setDeleteCheckBox(true);
menuActionMapping.setDeleteCheckBoxDisabled("true");
}
if(strAct.equals("EDIT"))
{
menuActionMapping.setEditCheckBox(true);
menuActionMapping.setEditCheckBoxDisabled("true");
}
if(strAct.equals("DOWNLOAD"))
{
menuActionMapping.setDownloadCheckBox(true);
menuActionMapping.setDownloadCheckBoxDisabled("true");
}
}
return menuActionMapping;
}
});
System.out.println(menusList);
return menusList;
我不知道namedJdbcTemplate 和Map Row 是如何工作的,所以我遇到了问题.. 我还在 hibernate 中编写了替代代码,但它不起作用:-
final List<MenuActionMapping> menusList;
Query query= getSession().createSQLQuery("call kyc.sp_proc()");
menusList=query.list();
System.out.println(menusList);
return menusList;
我想我没有设置 MenuAction 映射对象,那么如何达到目的?
另外,我想在将其设置到对象之前操作列,我如何在 hibernate 状态下做到这一点......
困扰我的主要代码是:-
String str=resultset.getString("menu_actions");
String [] actions=str.split(",");
if(resultset.getInt("KRMM_ACTIVE")==1)
{
menuActionMapping.setActive(true);
}
else
{
menuActionMapping.setActive(false);
}
for(String strAct:actions)
{
if(strAct.equals("ADD"))
{
menuActionMapping.setAddCheckBox(true);
menuActionMapping.setAddCheckBoxDisabled("true");
}
if(strAct.equals("VIEW"))
{
menuActionMapping.setViewCheckBox(true);
menuActionMapping.setViewCheckBoxDisabled("true");
}
if(strAct.equals("DELETE"))
{
menuActionMapping.setDeleteCheckBox(true);
menuActionMapping.setDeleteCheckBoxDisabled("true");
}
if(strAct.equals("EDIT"))
{
menuActionMapping.setEditCheckBox(true);
menuActionMapping.setEditCheckBoxDisabled("true");
}
if(strAct.equals("DOWNLOAD"))
{
menuActionMapping.setDownloadCheckBox(true);
menuActionMapping.setDownloadCheckBoxDisabled("true");
}
如何在 hibernate 中设置基于1列的多个属性...
最佳答案
namedJdbcTemplate
可帮助您减少获取、关闭连接等样板代码,而行映射器可帮助您迭代返回的结果集并将其映射到所需的 Java 类。
检查这个http://www.mkyong.com/hibernate/how-to-call-store-procedure-in-hibernate/
关于java - Hibernate 中 NamedParameterJDBCtemplate rowmapper 的替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19446439/