JPA의 @Basic(옵션 = false) vs @Column(nullable = false)
와의 차이는 무엇입니까?@Basic(optional = false)
그리고.@Column(nullable = false)
JPA의 지속성에 대해서요?
Gordon Yorke(EclipseLink 아키텍처 위원회 위원, TopLink Core Technical Lead, JPA 2.0 Expert Group Member)는 이 주제에 대해 좋은 답변을 작성했습니다.그 대신 그의 답변을 인용하겠습니다.
의 차이점
optional
그리고.nullable
평가 범위입니다.의 정의optional
에서는 속성과 필드 값에 대해 설명하며 런타임 내에 이 기능을 평가해야 한다고 제안합니다.'nullable
'는 데이터베이스 열만 참조합니다.구현에서 구현이 선택되는 경우
optional
이러한 속성은 지속성 공급자에 의해 메모리에서 평가되며 SQL이 데이터베이스로 전송되기 전에 예외가 발생합니다.그렇지 않으면 를 사용할 때 예외가 발생합니다.updatable=false
' 'optional
위반은 보고되지 않습니다.
그래서 JPA 2.1(EclipseLink)을 사용하여 @Basic(옵션=false) 주석을 시도해보니 실제 사용에서는 해당 주석이 무시되었습니다(적어도 String 필드에서는).(예를 들어 entity Manager).지속 콜)을 실행합니다.
그래서 저는 사양서에 가서 그것에 대해 자세히 읽었습니다.사양은 다음과 같이 기술하고 있습니다.
http://download.oracle.com/otndocs/jcp/persistence-2.0-fr-oth-JSpec/
기본(옵션):필드 또는 속성 값이 null일 수 있습니다.이는 힌트이며 기본 유형에 대해서는 무시되며 스키마 생성에 사용될 수 있습니다.
그래서 이 문장은 스키마 생성에서 사용되는 Basic(옵션)의 실제 사용 사례를 설명한다고 생각합니다.(즉, Java Entity 클래스에서 CREATE TABLE SQL을 생성하는 경우).예를 들어, 이것은 Hibernate가 실행할 수 있는 것입니다.)
언급URL : https://stackoverflow.com/questions/2899073/basicoptional-false-vs-columnnullable-false-in-jpa
'source' 카테고리의 다른 글
계산된 속성을 JPA 및 최대 절전 모드로 매핑하는 방법 (0) | 2022.09.20 |
---|---|
소수점 이하를 2배로 이동 (0) | 2022.09.20 |
Typescript에서 유형을 확장할 수 있습니까? (0) | 2022.09.20 |
mariadb 서버를 mysql 워크벤치에 연결할 수 없습니다. (0) | 2022.09.20 |
두 날짜 사이의 날짜 목록 가져오기 (0) | 2022.09.18 |