Entities

ORM 서비스를 구성하는 가장 기초적인 클래스로 어플리케이션에서 다루고자 하는 테이블에 대응하여 구성할 수 있으며 테이블이 포함하는 컬럼에 대응한 속성들을 가지고 있다.

기본 필요 요건

Entity를 구성하기 위한 아래와 같은 요건이 있다.(JPA요건)

[필수] Entity annotation 선언 필요 ( 혹은 XML 설정파일에 정의 )
@Entity
public class User {
}
[필수] Argument 없는 생성자 필요
   public User(){
   }
[필수] 최상위레벨 클래스로 생성되어야 하고 enum,interface로 정의될 수 없음
[필수] final 클래스로 선언될 수 없음
[필수] Primary Key 있어야 함 : @Id라는 Annotation 표기
   @Id
   private String userId;
[권장] Serializable 인터페이스 구현
public class User implements Serializable {
   private static final long serialVersionUID = -8077677670915867738L;
}
[권장] 속성 정보 접근을 위한 getter, setter 정의
   private String userName;
 
   public String getUserName() {
      return userName;
   }
 
   public void setUserName(String userName) {
      this.userName = userName;
   }

주요 Annotations

Entity를 구성하는 주요한 Annotation은 다음과 같다.

@Entity

해당 클래스가 Entity 클래스임을 표시하는 것으로 클래스 선언문 위에 기재한다. 테이블명과 Entity명이 다를 때에는 name에 해당 테이블명을 기재한다

@Entity(name="USER_TB")
public class User {
}
@Id

해당 Attribute가 Key임을 표시하는 것으로 Attribute 위에 기재한다.

   @Id
   private String userId;
@Column

해당 Attribute와 매핑되는 컬럼정보를 입력하기 위한 것으로 Attribue위에 기재한다. 컬럼명과 Attribute명이 일치할 경우는 기재하지 않아도 됨

   @Column(name = "DEPT_NAME", length = 30)
   private String deptName;
@OneToOne, @OneToMany, @ManyToOne, @ManyToMany

테이블간 관계를 구성하기 위한 것으로 정의되는 Attribute위에 기재한다. 각각은 1:1,1:N,N:1,N;N의 관계를 표현함. 이에 대한 자세한 설명은 association_mapping 참고

   @ManyToMany
   private Set<Role> roles = new HashSet(0);
@Transient

테이블의 컬럼과 매핑되지 않고 쓰이는 Attribute를 정의하고자 할때 Attribute위에 기재한다.

   @Transient
   private String roleName;

Entity Status

  • New(transient) : 단순히 Entity 객체가 초기화되어 있는 상태를 말한다.
  • Managed(persistent) : Entity Manager에 의해 Entity가 관리되는 상태를 말한다.
  • Detached : Entity 객체가 더 이상 Persistance Context와 연관이 없는 상태이다.
  • Removed : Managed 되어 있는 Entity 객체가 삭제된 상태이다.
 
egovframework/rte2/psl/orm/entities.txt · 마지막 수정: 2023/12/21 05:21 (외부 편집기)
 
이 위키의 내용은 다음의 라이센스에 따릅니다 :CC Attribution-Noncommercial-Share Alike 3.0 Unported
전자정부 표준프레임워크 라이센스(바로가기)

전자정부 표준프레임워크 활용의 안정성 보장을 위해 위험성을 지속적으로 모니터링하고 있으나, 오픈소스의 특성상 문제가 발생할 수 있습니다.
전자정부 표준프레임워크는 Apache 2.0 라이선스를 따르고 있는 오픈소스 프로그램입니다. Apache 2.0 라이선스에 따라 표준프레임워크를 활용하여 발생된 업무중단, 컴퓨터 고장 또는 오동작으로 인한 손해 등에 대해서 책임이 없습니다.
Recent changes RSS feed CC Attribution-Noncommercial-Share Alike 3.0 Unported Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki