2017-09-26 1 views
1

DB에서 테이블 행을 업데이트하고 업데이트 후 값이 업데이트되지 않으면 특정 문자열 (예 : '완료')을 반환하는 다른 프로 시저를 반환하는 프로 시저를 만들었습니다 (예 : ' 실패').Java 호출에서 프로 시저 호출이 작동하지 않음

는 테이블을 업데이트하고 나는 그것을 '수행'즉, 적절한 응답을 반환의 자바 코드에서 같은 프로 시저를 호출하고 때

call LoginCheck('9111111114','AGGR001002','11d3ad9315b7be5dd53b31a273b3b3aba5defe700808305aa16a3062b76658a791','DIST001007'); 

그러나 응답 값을 반환하는 것 MySQL의 도구에서 전화,하지만 난 그것이 각각의 테이블 행을 업데이 트하지 않은 것으로 보인다 테이블을 확인하고 있습니다.

factory = DBUtil.getSessionFactory(); 
Session session = factory.openSession(); 
Transaction transaction = session.beginTransaction(); 
String status = "7000"; 
List objectList = null;  
SQLQuery query = session.createSQLQuery("call LoginCheck(:userid,:AggId,:Password,:id)"); 
    query.setString("userid", userid); 
    query.setString("AggId", AggId); 
    query.setString("Password", Password); 
    query.setString("id", id); 

    objectList = query.list(); 

은 이미 아무것도가 내 옆에서 필요한 경우 알려 주시기 바랍니다 query.setParameter

query.ExecuteUpdate()을 시도했습니다.

+1

를 사용하여 프로그램 구성에서 MySQL의 datasorce의 자동 커밋 설정을 확인 했습니까? 프로 시저가 올바른 값을 반환하지만 데이터베이스가 업데이트되지 않는다는 사실은 트랜잭션이 커밋되지 않았 음을 나타냅니다. –

답변

1

거래를 시작했지만 커밋하지 않은 것으로 보입니다. 시도해보십시오.

트랜잭션 트랜잭션 = session.beginTransaction();

transaction.commit()

+0

감사합니다, @ EvgenyTanhilevich 및 @Tejal : D – abhi314

관련 문제