본문 바로가기

JPA

(4)
EJB3 JPA 모델링 Notation 제안 [I] EJB3의 JPA 는 Hibernate 나 JDO 진영의 ORM 개념을 도입하여 기존의 EJB2와는 새로운 형태로 개발을 가능하게 해준다. 또한, EJB3 의 POJO 개발이 가능한 부분은 실질적으로 일반 자바 클래스를 사용하여 기존보다는 확실하게 더 단순한 작업으로 개발할 수 있게 해준다. 하지만, 코드만을 보고 개발을 한다는 것은 쉬운 일이 아니기 때문에 모델링 도구를 같이 사용하는 것이 개발의 생산성을 도와줄 수 있는데, 현재 JPA의 Notation (혹은 Annotation)을 수용하는 모델링 도구가 없기 때문에 모델링 도구의 Stereotype이나 제약사항(Constraint), Tag 등을 사용하면 기존의 모델링 도구를 이용한 JPA의 모델링이 어느 정도는 가능하다고 본다. 따라서, 현재 J..
EJB3의 Entity Access Object 패턴 세션빈의 비즈니스 로직에서 EntityManager API를 직접적으로 사용하는 방법은 비즈니스 로직 내에 엔티티 접근 코드를 산재하게 한다는 문제가 발생되는데, 이는 유지보수 측면에서 고역이다. Entity Access Object (EAO) 패턴은 비즈니스 로직에서 엔티티 접근 로직을 결합력을 적게 하며 코드 유지보수를 향상시킨다. 이는 비즈니스 로직에 영향을 주지 않고 내부의 엔티티 접근 코드를 쉽게 변경 가능하게 해준다. 만일 어플리케이션에서 EAO 패턴을 도입하면, JDBC나 EJB2 CMP, 혹은 다른 저장 메커니즘에서 JPA로 저장 티어 메커니즘 변경을 훨씬 쉽게 해준다. 선의 blueprint 웹 사이트에서 데이터 접근 객체에 대해서 더 자세하게 배울 수 있다. DAO의 내용에서 DAO를 ..
Persistence를 어떻게 번역해야하나? EJB 3 가 나오면서 Java Persistence API (JPA)가 등장하게 되었다. Persistent 는 Cobuild 사전에 다음과 같이 정의되어 있다. 1. Something that is persistent continues to exist or happen for a long time; used especially about bad or undesirable states or situations. 2. Someone who is persistent continues trying to do something, even though it is difficult or other people are against it. 첫번째는 별로 안좋은 의미로 '완고한', '고집이 센' 정도로 받아들일 수 ..
Hibernate3 사용시 Join 테이블에 FK 이외의 컬럼이 있는 경우 매핑 ORM을 사용하다 보면 항상 겪는 문제지만, 다대다(many-to-many) 관계를 객체와 어떻게 매핑할 것인가이다. 물론, 객체 입장에서는 두 객체간의 Collection 문제지만, DB 입장에서는 항상 Join 테이블이 끼어 있어서 이를 해결하기간 웬만해서는 쉽지 않다. Hibernate3는 EJB3의 JPA(Java Persistence API)의 구현체로 이에 대한 문제를 다음과 같이 해결하고 있다. 위의 그림과 같이 Category에 Item을 추가할 때마다 어떤 정보가 필요하다고 가정하자. 위의 구조를 자바 클래스에 매핑하는 데에 두가지 방법이 있다. 첫번째 방법은 join 테이블에 대한 중간의 entity 클래스를 사용하여 일대다(one-to-many) 관계로 매핑하는 것이다. 두번째 방법은..

반응형