2012-09-22 2 views
6

나는 Hibernate 주석을 사용하여 손을 잡으려고했다. 내가 캐스 케이 딩을 사용하려고 할 때 나는 두 이클립스 인텔리에서 옵션을 얻을 : 최대 절전 모드 CascadeType에서JPA Cascade 주석과 Hibernate Cascade 주석의 차이점

javax.persistence.CascadeType and org.hibernate.annotations.CascadeType 

를, JPA의 하나보다 주어진 많은 옵션이 있습니다.

다른 것에 비해 장점이 있습니까?

답변

8

javax.persistence 주석은 표준 사양입니다. Hibernate 주석은 Hibernate의 특정 구현을 나타낸다. 그것들은 대부분 오버랩되지만, Hibernate CascadeType은 Hibernate와 관련된 몇 가지 추가적인 옵션을 제공한다.

일반적으로 가능할 때마다 javax.persistence 주석을 사용하십시오. Hibernate와 관련된 옵션 중 하나가 필요하고 다른 영속 프로 바이더로 전환 할 필요가 없다는 것을 알고있는 경우에만 Hibernate 변형을 사용하십시오.

많은 사람들이 JPA/Hibernate 어노테이션을 올바른 프로젝트와 동일한 프로젝트 내에서 혼합합니다. 그러나 CascadeType을 포함하는이 같은 미묘한 상호 작용이있을 수있다 : - javax.persistence.CascadeType 코드에

http://www.mkyong.com/hibernate/cascade-jpa-hibernate-annotation-common-mistake/

봐, @OneToMany는 JPA에서, 그것은는 JPA 폭포를 기대했다. 당신은 최대 절전 모드 세션으로 저장 그러나 org.hibernate.engine.Cascade는

최대 절전 모드 프로세스가 ACTION_SAVE_UPDATE 액션, 의 원인이됩니다 저장하지만, JPA는 ACTION_PERSIST을 통과합니다 ...

을 확인하려면 다음을 수행합니다 ACTION_MERGE이면 과 일치하지 않아 계단식을 실행하지 못했습니다.