문제

EJB 2.x BMP(엔터티 빈)를 사용하는 대규모 애플리케이션이 있습니다.이는 끔찍한 지속성 전략으로 잘 알려져 있습니다(필요한 경우 자세히 설명할 수 있습니다).

나는 훨씬 더 표현력이 풍부하고 투명하며 비침해적인 지속성 전략을 사용하기 위해 이 애플리케이션을 마이그레이션하기 시작하고 싶습니다. 그리고 우리 회사의 이전 경험을 고려할 때 Hibernate 3.x가 확실한 선택입니다.

애플리케이션의 100개 이상의 테이블이 엔터티 Bean을 사용하므로 Hibernate로 마이그레이션하는 데는 시간이 걸릴 것입니다.따라서 저는 두 가지 지속성 전략이 병렬로 실행되는 단계적 접근 방식을 찾고 있습니다. 가능하다면 동시에 동일한 테이블에서 이상적으로 실행하는 것이 좋습니다.

제 질문은 이 두 가지 지속성 전략을 결합할 때 어떤 위험이 있습니까(있는 경우)는 것입니다.서로 방해가 될까요?

도움이 되었습니까?

해결책

jodonnel이 말한 것처럼 캐싱에 주의를 기울여야 합니다. 왜냐하면 Hibernate에서 두 번째 수준 캐싱을 사용하고 테이블이 Hibernate 외부에서 수정되면 Hibernate는 캐시 항목이 오래되었는지 알 수 있는 방법이 없기 때문입니다.

트랜잭션을 위해서는 둘 다 컨테이너에서 제공하는 JTA를 사용해야 하므로 안전해야 합니다.

다른 팁

정말 조심해야 할 것은 Hibernate 세션으로 작업하는 것입니다.Hibernate는 물건을 캐시하므로 방해가 될 수 있습니다.

솔직히 말해서 Hibernate를 채택한다면 Entity Bean을 완전히 삭제하는 것이 좋습니다.세션 빈 내에서 Hibernate 작업을 수행하고 세션 빈이 트랜잭션을 관리하도록 하세요.

또는 Java Persistence API로 표준화된 Hibernate인 EJB 3을 대안으로 사용하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top