@Basic 베이직 주석은 다음과 같은 유형의 불변의 속성 또는 예를 변수에 적용 할 수
:
자바 원시적에게 types, 기본 유형의 랩퍼, String, java.math.BigInteger, java.math.BigDecimal, java.util.Date, java.util.Calendar, java.sql.Date, java.sql.Time, java .sql.Tim byte [], Byte [], char [], Character [], enums 및 java.io.Serializable을 구현하는 기타 모든 유형이 있습니다.
영구 필드 및 이러한 유형의 속성에 대해서는 기본 주석을 사용하는 것이 선택 사항입니다. 해당 필드 또는 속성에 기본 주석을 지정하지 않은 경우 기본 주석의 기본값 인 이 적용됩니다.
@Basic
protected String name;
및
@Embedded
이
@Basic(fetch=LAZY)
protected String getName() {
return name;
}
지속적 필드 또는 홍보를 지정합니다 : 예
값이 인 엔티티의 오퍼티팅 (embeddable class) 인스턴스. 삽입 가능한 클래스는 삽입 가능으로 주석 된 이어야합니다.
예 1
@Embedded
@AttributeOverrides({
@AttributeOverride(name="startDate", [email protected]("EMP_START")),
@AttributeOverride(name="endDate", [email protected]("EMP_END"))
})
public EmploymentPeriod getEmploymentPeriod() { ... }
예 2
@Entity
public class Project {
@EmbeddedId ProjectId id;
//other fields
}
@Embeddable
Class ProjectId {
int departmentId;
long projectId;
}
JSR Persistence Specification 및 Source reference
Q1. 만약 embeddable 타입의 필드 나 프로퍼티가 영속적으로 지속된다면'@ Embedded' 주석을 추가해야하는 이유는 무엇입니까? Q2. @ @ Embedded' 주석없이'@ AttributeOverrides' 어노테이션을 사용할 수 있습니까? '@ Basic'에 대해서도 약간의 빛을 던져 주시겠습니까? –
Q1. @Embedded는 열 정의 Q2를 재정의 할 수 있기 때문에. 아니, 그렇게 생각하지 않아. 이에 대한 좋은 예가 여기에 나와 있습니다. http://www.redhat.com/docs/en-US/JBoss_Enterprise_Web_Platform/5.0.0/html/Hibernate_Annotations_Reference_Guide/ch02s02s02s03.html –
@Pascal 재정의가 없으면 어떻게해야합니까? '@ Embedded'의 목적은 무엇입니까? 빠져 나갈 수 있습니까? –