최대 절전 모드 트랜잭션에 문제가 있습니다. 실행 후 테이블에 값이 없으며 전혀 업데이트되지 않습니다. 다른 모든 업데이트가 제대로 작동합니다.최대 절전 모드 : 테이블이 업데이트되지 않습니다.
public class LastDownloadedMessage {
Integer id;
private String lastDownloadedMessageUid;
private String lastUidNext;
private String folder;
private String cred;
//GETTERS AND SETTERS HERE
public LastDownloadedMessage() {
super();
}
public LastDownloadedMessage(String lastDownloadedMessageUid,
String lastUidNext) {
super();
this.lastDownloadedMessageUid = lastDownloadedMessageUid;
this.lastUidNext = lastUidNext;
}
}
이 업데이트를하고있는 기능입니다 :
여기 이것은 POJO 객체 인 매핑을
<class name="LastDownloadedMessage" table="t_imap_lastmsguid">
<id name="id" column="id" ><generator class="increment"/></id>
<property name="lastDownloadedMessageUid"><column name="last_msg_uid" /></property>
<property name="lastUidNext"><column name="next_msg_uid" /></property>
<property name="folder"><column name="folder_name" /></property>
<property name="cred"><column name="credential" /></property>
</class>
을합니다.
Session ssn=HibernateSessionFactory.openSession();
Transaction txn = ssn.beginTransaction();
Query query = ssn.createQuery("update LastDownloadedMessage e set e.lastDownloadedMessageUid = :luid , e.lastUidNext = :nextUid where e.folder =:folder and e.cred = :cred");
query.setParameter("luid",last_downloaded_msg_uid);
query.setParameter("nextUid", uid_next);
query.setParameter("folder", folder);
query.setParameter("cred", credential);
int result = query.executeUpate();
txn.commit();
ssn.flush();
ssn.close();
오류없이 제대로 실행되는 것으로 나타납니다. 무엇이 문제 일 수 있습니까?
'결과'의 가치는 무엇입니까? –
@BrianAgnew 0입니다. – Aneesh
sql을 직접 실행하면 'select * from t_imap_lastmsguid where folder_name = folder and credential = credential'이 반환됩니까? 또한 'folder'필드가 'folder_name'이라는 열과 일치하는 것으로 나타났습니다. 업데이트 기능의 폴더 란 무엇입니까? 그것은 문자열, 폴더 개체입니까? folder_name 열과 일치하는 올바른 유형의 폴더로 설정 한 매개 변수입니까? – Buurman