테이블에 createdAt
열이 있습니다.이 테이블은 처음 생성 된 후에 업데이트하지 않으려합니다. 그러므로 나는 그 정의에 updatable=false
이라고 표시했다. 그러나 내가 최대 절전 모드의 업데이트 메서드를 사용하면, 업데이트되고있다. 최대 절전 모드 업데이트 쿼리 로그를 확인할 때 createdAt 필드가 업데이트 쿼리에 포함되어 있지 않지만 어쨌든 업데이트됩니다. 여기에 내가 사용하고있는 코드 (I 최대 절전 4 일)업데이트 할 수있는 잘못된 열이 업데이트 중입니다.
--EDIT-- 내가 데이터베이스로 MySQL을 사용하고 분명히 MySQL의 워크 벤치는 기본적으로 열을에 타임 스탬프 CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
속성을 추가 할 수 있습니다. 최대 절전 모드 문제로 인해 ON UPDATE CURRENT_TIMESTAMP
업데이트가 제거 된 후 해결되었습니다. 그것은 보통 문제가 될한다
Session session = null;
try {
session = currentSession();
session.beginTransaction();
session.update(user);
commitTransactionOfGivenSession(session);
} catch (HibernateException exc) {
logRollbackAndThrowHibernateException(exc, session);
} finally {
closeSession(session);
}
최대 절전 모드 로그인 createdAt
필드
update
example_schema.Users
set
lastLogin=?,
lastNotifiedAt=?,
userName=?,
waitingSince=?
where
userId=?
데이터베이스에는 어떤 DBMS가 정의되어 있습니까? 테이블에 컬럼이 갱신되도록하는 트리거가 있습니까? – DaveH
mysql을 사용 중이며 필드가 TIMESTAMP로 정의되어 있습니다. 이제 mysql "CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP"에 의해 자동 생성되는 기본값이 있음을 알 수 있습니다. 이 제거하려면 노력하고 있지만 mysql 내 변경을 무시하는 것 같다. – cubbuk