2013-01-15 3 views
1

ORM과 SQL 프로그래밍 사이의 겉으로보기에 영원한 투쟁에서 질문이옵니다. 둘 다 사용하지 않는 이유는 무엇입니까? 대부분의 프로그래밍에서 ORM을 사용하고 선택한 ORM이 수행 할 수없는 복잡한 JOIN 쿼리 및 기타 복잡한 쿼리에 대한 자체 SQL 쿼리를 프로그래밍합니다. 그렇지 않은 이유가 있습니까?왜 ORM과 SQL을 모두 사용하지 않습니까?

+0

완벽하게 잘 보이는 것, 그것이 내가하는 일입니다. – Daveo

답변

2

대부분의 ORM 솔루션은 원시 SQL을 지원합니다. Hibernate.

두 가지를 결합하지 않는 이유는 일관성 중 하나입니다. 데이터베이스에서 데이터를 검색하고이를 응용 프로그램의 객체로 변환하는 두 가지 방법을 이해해야한다면 기억하는 양이 두 배가되고 기회는 두 배가됩니다 (데이터베이스에 연결하고 데이터를 검색하는 코드의 경우) 테스트를 두 번 수행해야합니다.

ORM에 익숙하지 않은 개발자는 원시 SQL을 사용하는 경향이 있으며 ORM 도구를 사용하는 개발자는 ORM 계층을 사용하여 거의 모든 것을 처리합니다. 그러면 코드베이스를 유지 관리하고 확장하기가 어려워집니다 .

이 작업을 수행하려는 경우 최소한 "일관성을 유지할 수있는 JDBC (또는 무엇이든)"규칙을 통해 직접적으로 SQL을 ORM 도구를 통해 시행해야합니다. 많은 객체 매핑 기능을 다시 사용하십시오.

하지만 솔루션을 골라 내고 다니는 것이 이상적입니다. 베팅을 헤징하는 것은 거의 무료가 아닙니다.

3

ORM에서 생성 된 대부분의 SQL은 최적화되지 않았습니다.

성능이 중요한 경우 바인딩에만 ORM을 사용하고 모든 쿼리에 사용자 정의 SQL을 사용하는 것이 좋습니다.

+0

나는 어떤 이유도 언급하지 않고 ORM-tools 제작자가 두 가지를 결합하지 않는 것이 좋습니다. 그러나, 내가 그것을 google 할 때, 나는 그것에 거의 아무것도 발견하지 않는다. –

관련 문제