【发布时间】:2011-10-17 14:44:21
【问题描述】:
我们在 Hibernate3.6-Spring 3.1 中有一个应用程序。
我有这样的通用 DAO impl,(http://www.ibm.com/developerworks/java/library/j-genericdao/index.html)
public abstract class GenericDaoImpl<T, ID extends Serializable> implements GenericDao<T, ID>
{
public int executeSP(final String SP_NAME, Map<String, Object> params)
{
SQLQuery sq = getSession().createSQLQuery(SP_NAME);
sq.setProperties(params);
return sq.executeUpdate();
}
}
还有这个服务实现
@Transactional
public class PejlAnalysisServiceImpl implements PejlAnalysisService, InitializingBean
{
private CisternDao cisternDao;
private PejlDataDao pejlDataDao;
private GenericDao genericDao; // <-- THIS?
private void test()
{
Map<String, Object> params = new HashMap<String, Object>();
params.put("PARAM1",100); //AND THIS
genericDao.executeSP("MY_STORED_PROCEDURE", params); //And THIS
}
}
这真的是正确的方法吗?
附:存储过程处理不同的数据库表,因此它们不属于特定的 DAO 实现。
【问题讨论】: