자바에서의 지속성
지난 몇 년 동안 EJB 2.0, Hibernate, JPA 및 자체 개발 개념과 같은 개념을 사용하여 Java의 지속성 추상화 분야에서 경험을 쌓았습니다. 그들은 가파른 학습 곡선과 많은 복잡성을 가지고있는 것처럼 보였습니다. 또한 SQL의 큰 팬으로서 많은 추상화 모델이 SQL에 비해 너무 많은 추상화를 제공하여 "기준", "조건 자", "제한"과 같은 개념을 만들지 만 SQL은 아닌 개념을 만듭니다.
Java에서 퍼시스턴스 추상화의 일반적인 개념은 RDBMS가 어떻게 든 OO 세계와 일치하는 객체 관계형 모델을 기반으로하는 것 같습니다. ORM 토론은 항상 정서적 인 문제였습니다. 이러한 솔루션이 존재할 수 있다면 모든 사람에게 적합한 단일 솔루션이 존재하지 않는 것 같습니다.
주크
ORM 관련 문제를 피하는 방법에 대한 개인적 선호는 관계 세계에 충실하는 것입니다. 이제 데이터 모델 패러다임의 선택은 개인적인 취향이거나 구체적인 문제에 가장 적합한 데이터 모델의 문제이므로 토론 주제가되어서는 안됩니다. 내가 시작하고 싶은 토론은 jOOQ 라는 내 자신의 지속성 도구에 관한 것 입니다. 최신 지속성 도구의 장점을 대부분 제공하기 위해 jOOQ를 설계했습니다.
- SQL 기반 도메인 특정 언어
- 기본 데이터베이스 스키마를 Java로 맵핑하는 소스 코드 생성
- 많은 RDBMS 지원
최신 지속성 도구가 거의없는 몇 가지 기능 추가 (잘못된 경우 수정) :
- 복잡한 SQL 지원-공용체, 중첩 선택, 자체 조인, 앨리어싱, 사례 절, 산술 표현식
- 비표준 SQL-저장 프로 시저, UDT, ENUMS, 기본 함수, 분석 함수 지원
자세한 내용은 http://www.jooq.org/learn.php 문서 페이지를 참조 하십시오 . Linq는 SQL 전용으로 설계되지 않았지만 C # 용 Linq에서도 매우 유사한 접근 방식이 구현되어 있음을 알 수 있습니다.
질문
이제 저는 SQL의 열렬한 팬이라고 말하면서 다른 개발자가 jOOQ (또는 Linq)에 대한 열정을 나눌 지 궁금합니다. 지속성 추상화에 대한 이런 종류의 접근 방식이 실행 가능한가? 당신이 볼 수있는 장단점은 무엇입니까? jOOQ를 개선 할 수있는 방법과 의견에 무엇이 없는가? 개념적으로나 실제로 어디에서 잘못 되었습니까?
비판적이지만 건설적인 답변에 감사드립니다.
나는 토론이 감정적 인 것이라는 것을 이해합니다. 이미 비슷한 일을하는 많은 훌륭한 도구가 있습니다. 내가 관심있는 것은 당신이 읽은 경험 이나 기사를 바탕으로 중요하지만 건설적인 피드백 입니다.