/**
* 評価情報更新
* @param enterId 事業者ID
* @param evaId 評価ID
* @param updateDate 評価情報の更新日付
* @return 評価情報更新結果
*/
public int updateEvaInfo(String enterId, String evaId, String updateDate)
throws DataAccessException {
// 評価情報を更新用HQL文を設定する
String hqlUpdate = " update TblEva as tblEva "
+ " set tblEva.deleteFlg = :deleteFlg, "
+ " tblEva.updatetime = :updatetime "
+ " where tblEva.id.tblEnter.enterId = :enterId "
+ " and tblEva.id.evaId = :evaId "
+ " and tblEva.updatetime = :updateDate "; Query query = getSession().createQuery(hqlUpdate);
// HQL文のパラメータを設定する
query.setString("deleteFlg", Constant.DELETEFLAG_DELETED);
query.setTimestamp("updatetime", CommonUtils.getCurrentTime());
query.setString("enterId", enterId);
query.setString("evaId", evaId);
query.setString("updateDate", updateDate);
// 評価情報更新結果を取得する
int updateCount = query.executeUpdate(); // 評価情報更新結果を戻す
return updateCount;
}
可以参考下,你用变量设置不要用数字试试。
int sqlType)
throws SQLException
按顺序位置 parameterIndex 将 OUT 参数注册为 JDBC 类型 sqlType。所有 OUT 参数都必须在执行存储过程前注册。
由 sqlType 指定的 OUT 参数的 JDBC 类型确定必须用于 get 方法来读取该参数值的 Java 类型。 如果预期返回给此输出参数的 JDBC 类型是取决于此特定数据库的,则 sqlType 应该是 java.sql.Types.OTHER。方法 getObject(int) 检索该值。
出参的注册方法是registerOutParameter
http://hi.baidu.com/beitinsect/blog/item/8c112b261145aa128b82a11d.html
存储过程我是写到一个DAO中的,通过hibernateDaoSupport得到Session,然后在得到connection,然后调用写好的存储过程,存储过程会要等A表中有刚开始插入的记录来执行相应的操作,但是,经过测试,发现A表中确实已经插入了记录,但是在存储过程中看不到已经插入了的数据,这样感觉就是两个事务了,这就是我说的两个事务的意思