자바 퍼시스턴스 / JPA : @Column vs @Basic
JPA @Column
와 @Basic
주석 의 차이점은 무엇입니까 ? 함께 사용할 수 있습니까? 함께 사용해야합니까 ? 아니면 그들 중 하나만으로 충분합니까?
@Basic
속성이 유지되고 표준 매핑이 사용됨을 나타냅니다. 속성이 느리게로드되는지 여부와 널 입력 가능 여부를 지정할 수있는 매개 변수가 있습니다.@Column
속성을 유지하려는 데이터베이스의 열 이름을 지정할 수 있습니다.
다른 것없이 하나를 지정하면 합리적인 기본 행동을 얻을 수 있으므로 일반적으로 사람들은 특별한 경우를 제외하고 하나만 사용합니다.
따라서 속성의 지연 로딩을 원하고 열 이름을 지정하려면
@Basic(fetch=FetchType.LAZY)
@Column(name="WIBBLE")
우리가 기본, 비 게으른 동작을 @Column
필요로한다면 이것으로 충분했을 것입니다.
이외에도 @ djna의 대답은 , 그를 주목할 필요가있다 @Basic
과 비교되어야 @OneToMany
, @ManyToOne
하고 @ManyToMany
. 이 중 하나만 속성에 지정할 수 있습니다.
@Column
및 @JoinColumn
데이터베이스 열 특성을 설명하기 위해 이들의 함께 지정 될 수 있습니다.
이들은 함께 사용할 수있는 두 개의 주석 세트이지만 한 번에 하나의 주석 세트 만 사용할 수 있습니다.
Basic은 프리미티브 필드를 위해 설계되었습니다.
http://en.wikibooks.org/wiki/Java_Persistence/Basic_Attributes
기본 속성은 속성 클래스가 String, Number, Date 또는 primitive와 같은 단순 유형 인 속성입니다. 기본 속성 값은 데이터베이스의 열 값에 직접 맵핑 될 수 있습니다.
지원되는 유형 및 변환은 JPA 구현 및 데이터베이스 플랫폼에 따라 다릅니다. 데이터베이스 유형에 직접 맵핑되지 않는 유형을 사용하는 모든 기본 속성은 2 진 데이터베이스 유형으로 직렬화 될 수 있습니다.
JPA에서 기본 속성을 맵핑하는 가장 쉬운 방법은 아무것도하지 않는 것입니다. 다른 주석이없고 다른 엔티티를 참조하지 않는 모든 속성은 자동으로 기본으로 매핑되며 기본 유형이 아닌 경우에도 직렬화됩니다. 속성의 열 이름은 기본적으로 속성 이름과 동일하게 대문자로 지정됩니다.
참고 : https://stackoverflow.com/questions/1383229/java-persistence-jpa-column-vs-basic
'developer tip' 카테고리의 다른 글
출력에서 색상 제거 (0) | 2020.07.25 |
---|---|
해결 "ObjectContext 인스턴스가 삭제되었으며 더 이상 연결이 필요한 작업에 사용할 수 없습니다"InvalidOperationException (0) | 2020.07.25 |
LINQ to SQL로 CROSS JOIN을 어떻게 수행합니까? (0) | 2020.07.25 |
fs.readFileSync ()에 대한 파일을 캡처하지 않는 방법은 무엇입니까? (0) | 2020.07.25 |
"스페셜 클래스"란 정확히 무엇입니까? (0) | 2020.07.25 |