2013-10-02 3 views
1

나는 인터넷 검색을 많이했으나 여전히 최대 절전 모드에서 연결을 사용해야하는 이유를 모르겠다. 일대 다 또는 다른 연관성을 언급하지 않고 일을 처리합니다. 최대 절전 모드 조인을 명시 적으로 사용하지 않고도 일부 조인 조건을 사용하여 테이블에서 카디 전 곱을 항상 수행 할 수 있습니다. 사용하지 않으면 무엇을 놓치겠습니까? 만약 있다면 장점이나 단점을 알려주십시오. 감사합니다.최대 절전 모드에서 연결을 사용하는 이유는 무엇입니까?

답변

1

Hibernate의 연관성의 주요 이점은 소스 코드를 통해 child 또는 parent 엔티티에 쉽게 액세스 할 수 있다는 것입니다. 내 코드 내에서

@Entity 
public class Student{ 

    @OneToMany 
    private List<Course> courses = new ArrayList<Course>(); 

    //Accessors 
} 

나는 학생 등 모든 과정을 가져 연결을 사용할 수 있습니다 : 예를 들어 나는 다음이 있다면 모든 것을이 부모를 통과 할 필요가있다

Student student = studentRepo.findById(1, Student.class); 
List<Course> courses = student.getCourses(); 

그 자녀 관계. 추가 SQL 또는 조인이 필요하지 않습니다. 또한 삽입 및 삭제와 같은 다른 중요한 작업을 쉽게 수행 할 수 있습니다.

BTW 원래 질문에서 데카르트 조인을 언급했는데, 이는 예외가 아니고 표준이어야합니다. 이들은 상당한 성능 오버 헤드를 전달할 수 있으며 종종 다른 조인을 사용하여 더 효율적으로 수행 할 수 있습니다.

+0

답장을 보내 주셔서 감사합니다. 누구나 성능이 좋습니다. 방법/이유를 알려주십시오. & 쿼리 (하위 쿼리 포함)가 mysql (프로파일 링으로 검사)에서 빠르게 실행되는 경우 (전체 테이블에 대한 조인이있는 쿼리보다)도 Hibernate에서 빠르게 실행됩니다. –