JPA @Column
주석
주석 의 nullable
속성 @Column
에는 두 가지 목적이 있습니다.
- 스키마 생성 도구에서 사용됩니다.
- 지속성 컨텍스트를 플러시하는 동안 최대 절전 모드에서 사용됩니다.
스키마 생성 도구
HBM2DDL 스키마 생성 도구 는 명령문을 생성 할 때 @Column(nullable = false)
엔티티 속성을 NOT NULL
연관된 테이블 열의 제한 조건으로 변환합니다 CREATE TABLE
.
Hibernate User Guide 에서 설명했듯이 데이터베이스 스키마 생성을 위해 HBM2DDL 메커니즘에 의존하는 대신 Flyway 와 같은 도구를 사용하는 것이 좋습니다 .
지속성 컨텍스트 플러시
지속성 컨텍스트를 플러시 할 때 Hibernate ORM은 또한 @Column(nullable = false)
엔티티 속성을 사용 합니다 :
new Nullability( session ).checkNullability( values, persister, true );
유효성 검사가 실패하면 Hibernate PropertyValueException
는를 던지고 INSERT 또는 UPDATE 문이 불필요하게 실행되는 것을 방지합니다.
if ( !nullability[i] && value == null ) {
//check basic level one nullablilty
throw new PropertyValueException(
"not-null property references a null or transient value",
persister.getEntityName(),
persister.getPropertyNames()[i]
);
}
최대 절전 모드 플러시 메커니즘의 작동 방식에 대한 자세한 내용은 이 문서를 확인 하십시오 .
빈 검증 @NotNull
주석
@NotNull
주석이 최대 절전 모드 ORM 가장 인기있는 JPA 구현 한 것처럼, 콩 검증에 의해 정의되고, 가장 인기있는 콩 검증 구현은이다 최대 절전 모드 검사기 프레임 워크.
Hibernate ORM과 함께 Hibernate Validator를 사용할 때, Hibernate Validator는 ConstraintViolation
엔티티를 확인할 때 를 던질 것이다 .