2011-03-23 4 views

답변

1

유용 할 지 모르겠지만, 유틸리티를 요청한 것처럼 QUERY OBJECT PATTERN (P of EAA, M. Fowler)에 대해 읽으라고 제안합니다. 뭔가를 구현할 시간이 있다면 좋은 시작입니다. 그렇지 않으면 무엇이든 찾을 수 있습니다. ORM 프레임 워크.

+0

하위 쿼리와 조인을 디자인하는 데 도움이 될 수있는 프레임 워크를 알고 계십니까? 예 : id * = (select * from map where id = 223) 인물을 선택하십시오. – Phani

2

QueryDsl은 Hibernate, JPA 또는 JDO 클래스로부터 쿼리 개체를 자동으로 생성하지만 from your DB schema도 생성합니다. 또한 supports subqueries

QCustomer customer = new QCustomer("c"); 

SQLTemplates dialect = new HSQLDBTemplates(); // SQL-dialect 
SQLQuery query = new SQLQueryImpl(connection, dialect); 
List<String> lastNames = query.from(customer) 
    .where(customer.firstName.eq("Bob")) 
    .list(customer.lastName); 

그것을 : Querydsl SQL과 쿼리

이 같은 간단

조회를 정의, 당신이 SQLSubQuery 인스턴스를 생성 하위 쿼리를 만들려면 매개 변수 from, from 등등 unique 또는 subquery를 작성하는 목록 012를 사용하십시오.은 쿼리에 대해 형식이 안전한 Querydsl 표현식입니다. 고유 한 (단일) 결과에 대해서는 이고 목록 결과에 대해서는 목록입니다.

query.from(customer).where(
    customer.status.eq(
     new SQLSubQuery().from(customer2).unique(customer2.status.max())) 
    .list(customer.all()) 

내가 그렇게 토크를 사용하고

query.from(customer).where( 
    customer.status.in(new SQLSubQuery().from(status).where(
    status.level.lt(3)).list(status.id)) 
    .list(customer.all())  
0

또 다른 예. 무엇을 할 수 있는지 보여주는 예제가 있습니다 (자습서) http://db.apache.org/torque/releases/torque-3.3/tutorial/step5.html

하지만 정확히 원하는 것은 무엇입니까? 개체를 데이터베이스에 serialize/unserialize하고 기본/외래 키를 기반으로 개체를로드하는 간단한 방법이나 복잡한 쿼리를 실행해야합니까?