2011-10-13 2 views
3

JBoss Tools를 사용하여 DB 스키마를 POJO로 리버스 엔지니어링합니다. 특히, hibernatetool ANT 태스크에서 hbm2java 옵션을 사용하고 있습니다. hbm2java 옵션에서 POJO에서 EJB3 (JPA?) 주석을 생성하도록 ejb3=true 을 지정할 수 있습니다. 제 질문은이 주석이 JPA 주석인지 여부입니다. JPA 어노테이션, Hibernate 어노테이션 및 EJB3 어노테이션 간의 차이점은 무엇인가? 그것들은 모두 본질적으로 동일합니까?JPA annotations = EJB3 annotations = Hibernate annotations?

답변

5

JPA (Java Persistence API) 주석은 Java 클래스가 데이터베이스에 유지되어야하는 방식을 선언합니다. Hibernate annotation은 JPA의 구현이며, Hibernate 프레임 워크에 특화된 것들이다. EJB (Enterprise Java Beans) 주석은 JPA와는 별개이며 EJB 프레임 워크 내에서 비즈니스 로직의보다 일반적인 측면 (트랜잭션, 동시성, 보안 등)을 설명하는 데 사용됩니다.

+0

특별히 hbm2java 옵션에 의해 도구 때 ejb3 = true가 사용됩니까? 생성 된 주석은 Hibernate/JPA 주석처럼 보이고 가져 오기는 모두 javax.persistence. *입니까? – Tom

+1

수정 : Hibernate 어노테이션은 바로 그것들이다 ... Hibernate- 특정 어노테이션들; 그들은 JPA의 구현이 아닙니다. JPA 주석은 모두 javax.persistence에 있습니다. 표준 준수 및 구현 독립 (일명 좋은 일)을 원한다면 JPA 주석을 사용하십시오. – DataNucleus

+0

"Hibernate annotations"가 "org.hibernate.annotations. *"를 의미하는 경우 DataNucleus가 올바른 것입니다. 나는 이것을 당신이 Hibernate 시스템과 상호 작용하는데 사용할 수있는 주석으로 읽었다. Hibernate는 JPA의 구현을 제공한다. – OrangeDog

관련 문제