문제

무엇을합니까 CascadeType.REFRESH 실제로?

그것의 정의는입니다

엔티티를 새로 고치면이 필드에서 보유한 모든 엔티티도 새로 고침

그러나 이것이 실제로 무엇을 의미합니까? 누군가 나에게 간단한 예를 들어 주시겠습니까?

도움이 되었습니까?

해결책

개별 CascadeType 설명은 약간 혼란 스러울 수 있지만 일반적인 경우에서 알아내는 쉬운 방법이 있습니다.

어떤 것도 CascadeType 값, 그것은 작동하는 경우를 의미합니다 X The를 사용하여 인스턴스에서 호출됩니다 EntityManager 인터페이스 및 해당 인스턴스에는 다른 엔티티 인스턴스에 대한 참조가 있으며 해당 협회에는 CascadeType.X 정의 된 다음 EntityManager 해당 관련 엔티티에도 작업이 적용됩니다.

그래서 EntityManager.refresh() 다음과 같이 정의됩니다.

데이터베이스에서 인스턴스 상태를 새로 고치고 엔티티에 대한 변경 사항을 덮어 쓰는 것입니다.

따라서 엔티티 A가 엔티티 B에 대한 참조가 있고 그 참조가 주석이 달린 경우 @CascadeType.REFRESH, 그리고 EntityManager.refresh(A) 그러면 호출됩니다 EntityManager.refresh(B) 암시 적으로도 호출됩니다.

다른 팁

새로 고침으로 검색 : 새로 고침 메소드를 사용하여 관리되는 객체를 데이터베이스에서 다시로드 할 수 있습니다.

메모리에서 관리되는 객체의 내용은 폐기되고 (변경 사항 포함) 데이터베이스에서 검색된 데이터로 대체됩니다. 이는 응용 프로그램이 검색 된 이후 다른 EntityManager에 의해 변경되었을 경우를 대비하여 응용 프로그램이 최신 버전의 엔티티 객체를 처리하는 데 유용 할 수 있습니다.

원천: http://www.objectdb.com/java/jpa/persistence/retrieve

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