파일 입력에서 디코딩 된 데이터를 유지하기 위해 최대 절전 모드를 사용하고 있습니다. 우리의 형식 중 하나가 가변 길이 형식이기 때문에 트랜잭션이 커밋되기 전에 엔티티에서 가능한 삽입 오류를 쉽게 확인하고 싶습니다. 따라서 예외를 처리하고 적절한 조치를 취할 수 있습니다.미리 문자열 겹침 길이를 감지합니다.
나는 내가 각 열의 값으로 설정 String
은 길이와 호환되는지 감지하고 싶습니다
@Entity
public class Entity {
@Column(...,length=20)
private String col1;
@Column(...,length=20)
private String col2;
@Column(...,length=40)
private String col3;
...
@Column(...,length=100)
private String col..N;
}
엔티티가있는 경우, 가능성에 대해 각각의 모든 필드의 유효성을 검사하는 자바 코드를 인스트루먼트없이 최대 길이
현재 하나의 레코드 만 문제의 영향을받을 때 전체 일괄 처리에 대해 트랜잭션이 커밋 될 때 (예 : @Transactional
메서드가 반환 됨) SQL 예외가 발생합니다. 내가 Session.persist(entity)
일 때 예외를 잡을 수 있습니다.
아이디어가 있으십니까? 여기에 제안
유효성 검사에 실패하면 CallbackException을 throw해야하는 Lifecycle.onSave 메서드에서 유효성 검사를 성공적으로 수행 할 수 있습니다. –