UML에서 JPA로 변환 프로파일의 스테레오타입

UML에서 JPA로 변환 프로파일에는 매개변수, 특성, 문서, 특정 관계, 클래스, 패키지 및 모델에 적용할 수 있는 스테레오타입이 들어 있습니다. 변환은 «Entity» 스테레오타입이 적용된 클래스의 요소에 적용되는 스테레오타입만 변환합니다.
다음 표는 프로파일의 스테레오타입, 관련 특성 및 유형 그리고 변환이 생성하는 코드를 나열합니다.
주: 변환 구성에서, 배치 설명자 생성 특성을 true로 설정하는 경우 변환은 Java™ 코드 대신 persistence.xml 파일에서 동등한 어노테이션을 생성합니다.
스테레오타입 적용 대상 특성 제한조건 생성된 코드
«Entity» 클래스 이름

카탈로그
스키마

생성된 Bean은 final 키워드를 지정하지 않으며 중첩 클래스가 아니고 ID를 보유합니다. 다음 특성을 갖는 Java 클래스:
  • @Entity 어노테이션
  • 기타 Java Bean 요구사항(예: ID 및 기본 생성자)
  • 스테레오타입 특성에 대한 값을 지정하는 경우 사용자가 지정하는 값과 해당 속성이 있는 @Table 어노테이션
«Inheritance» «Entity» 스테레오타입이 적용된 클래스. 이 스테레오타입은 기타 엔티티 클래스가 이 엔티티 클래스로부터 상속하는 방법을 식별합니다. discriminatorColumn: 식별자 열을 식별합니다. 이 특성은 strategy 특성이 SINGLE_TABLE로 설정되는 경우에만 사용됩니다.

discriminatorType: 식별자로 사용되는 열 유형을
식별합니다. strategy: 이 특성은 InheritanceStrategy 유형입니다.

생성된 단일 테이블에는 식별자 값과 식별자 유형이 있습니다.

기타 상속 전략에는 식별자 값과 식별자 유형이 없습니다.

 
«DiscriminatorValue» 다음 특성을 갖는 클래스:
  • «Entity» 스테레오타입 적용
  • 단일 테이블 상속 전략이나 단일 테이블 상속 전략이 있는 클래스에서 상속
이 스테레오타입은 기타 엔티티 클래스가 이 엔티티 클래스로부터 상속하는 방법을 식별합니다.
  value 특성에 지정된 값이 포함된 @DiscriminatorValue 어노테이션이 있는 엔티티 클래스
«SequenceGenerator» «Entity» 스테레오타입이 적용된 클래스나, «Entity» 스테레오타입이 적용된 클래스의 특성 allocationSize

initialValue
name
sequenceName

  생성된 클래스 또는 필드에 대한 @SequenceGenerator 어노테이션
«TableGenerator»   생성된 클래스 또는 필드에 대한 @TableGenerator 어노테이션
«Relationship Options» «Entity» 스테레오타입이 적용된 두 클래스 사이의 연관 cascade

fetch
optional

  생성된 클래스 사이의 엔티티 관계
«JoinColumn» «Entity» 스테레오타입이 적용된 두 클래스 사이의 다대다 또는 방향이 지정된 일대다 연관이 아닌 다른 연관 columnDefinition

insertable
name
nullable
primaryKey
referencedColumnName
table
unique
updatable

 
  • primaryKey 특성이 true로 설정되는 경우 변환은 해당 속성과 사용자가 지정하는 값을 보유하는 @PrimaryKeyJoinColumn 또는 @PrimaryKeyJoinColumns 어노테이션을 생성합니다.
  • primaryKey 특성이 false로 설정되는 경우 변환은 해당 속성과 사용자가 지정하는 값을 보유하는 @JoinColumn 또는 @JoinColumns 어노테이션을 생성합니다.
  • 변환은 또한 클래스 사이의 연관 유형에 해당되는 어노테이션을 생성합니다(예: @OneToOne).
«JoinColumn», «JoinTable» 또는 둘 다 «Entity» 스테레오타입이 적용된 두 클래스 사이의 다대다 또는 방향이 지정된 일대다 연관

catalog
inverseJoinColumns_columnDefinition
inverseJoinColumns_insertable
inverseJoinColumns_name
inverseJoinColumns_nullable
inverseJoinColumns_referencedColumnName
inverseJoinColumns_table
inverseJoinColumns_unique
inverseJoinColumns_updatable
name
schema

 
  • 클래스 사이의 연관 유형에 해당되는 어노테이션(예: @ManyToMany)
  • 다음 정보를 포함하는 @JoinTable 어노테이션:
    • 스테레오타입 특성에 해당되는 속성과 사용자가 특성에 지정하는 값
    • «JoinColumn» 스테레오타입의 특성에 해당되는 속성과 사용자가 특성에 지정하는 값
«Id» 특성     @Id 어노테이션이 있는 Java 필드. 변환은 또한 equals 및 hashCode 오퍼레이션에 대한 코드도 생성합니다.

특성을 포함하는 클래스에 «Entity» 스테레오타입이 적용되지 않는 경우 변환은 스테레오타입을 무시합니다.

둘 이상의 «Id» 스테레오타입이 동일한 엔티티 클래스에 존재하는 경우 변환은 다음 사항을 작성합니다.
  • beannamePK라고 하는 1차 키. 이 클래스에는 @Embeddable 표기법이 있고 생성된 Java 필드가 포함됩니다.
  • Bean 클래스에서, 1차 키 클래스 유형의 pk 특성. 이 특성의 표기법은 @EmbeddedID입니다.

hashCode 및 equals 오퍼레이션은 Embeddable 클래스에서 hashCode 및 equals 오퍼레이션을 참조합니다.

«Basic» «Entity» 스테레오타입이 적용된 클래스의 특성 fetch

optional

  스테레오타입의 모든 특성에 대해 값을 지정하는 특성의 @Basic 어노테이션
«Column» columnDefinition

insertable
length
name
nullable
precision
scale
table
unique
updatable

  스테레오타입의 모든 특성에 대해 값을 지정하는 특성의 @Column 어노테이션
«Enumerated»   스테레오타입의 모든 특성에 대해 값을 지정하는 특성의 @Enumerated 어노테이션
«GeneratedValue» generated

strategy

  생성된 필드에 대한 @GeneratedValue 어노테이션과, 스테레오타입 특성에 지정하는 값을 갖는 해당 속성
«Lob»     생성된 필드에 대한 @Lob 어노테이션

«Basic» 스테레오타입이 모델의 특성에 적용되지 않는 경우 변환은 @Basic 어노테이션을 추가하고 특성 유형을 FetchTypeLazy로 설정합니다.

«Temporal»   생성된 필드의 @Temporal 어노테이션
«Callback» «Entity» 스테레오타입이 적용된 클래스의 오퍼레이션 콜백 유형 배열을 지정하는 값   오퍼레이션에 대해 선택하는 값에 해당되는 어노테이션
«Datasource» 액터     메시지 구동 Bean 및 세션 Bean에서 스테레오타입이 지정하는 데이터 소스로의 참조

피드백