2013-03-14 2 views
2

나는 몽고 데이터베이스에 봄 데이터와 함께 유지됩니다 엔티티 있습니다봄 데이터

public interface MyEntityRepository extends 
    MongoRepository<MyEntity, String>, 
    QueryDslPredicateExecutor<MyEntity> {} 

그리고 플러그인이 내 저장소입니다

@Document 
public class MyEntity { 

    @Id 
    private String id; 

    @QueryType(PropertyType.DATETIME) 
    private DateTime lastUpdate; 

} 

을 QueryDSL 생성을위한 내 pom.xml에

  <plugin> 
      <groupId>com.mysema.maven</groupId> 
      <artifactId>apt-maven-plugin</artifactId> 
      <version>1.0.8</version> 
      <executions> 
       <execution> 
        <phase>generate-sources</phase> 
        <goals> 
         <goal>process</goal> 
        </goals> 
        <configuration> 
         <outputDirectory>target/generated-sources</outputDirectory> 
         <processor>org.springframework.data.mongodb.repository.support.MongoAnnotationProcessor</processor> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 

여전히 DateTime을 일반 엔터티로 취급합니다 (및 QueryType 없음). 나는 날짜로 취급하고 싶습니다, 그래서는 지금 내가 할 수없는, 비교를 수행 할 수 있습니다

물론
Predicate predicate = QMyEntity.myentity.lastUpdate... // where are the lessThan or greaterThan methods? 

는, 가능하면, 내가 대신 다시 떨어지는, JodaTime에 충실하고 싶습니다 자바 날짜, 또는 날짜를 밀리 초로 저장.

답변

1

org.joda.time.DateTime은 보통 Querydsl에 의해 DateTime 형식으로 처리되므로 일부 추가 플래그가 Querydsl을 엔터티 형식으로 처리합니다.

추가 플래그는 예를 들어 DateTime 형식의 속성이 @Embedded 또는 @Embeddable으로 주석 된 어딘가에있을 수 있습니다.

그래도 해결되지 않으면 Querydsl의 GitHub에서 티켓을여십시오.

+0

문제가 발생했습니다. https://jira.springsource.org/browse/DATAMONGO-624 – Luciano

+0

Querydsl https : //github.com/mysema/querydsl/issues/364 –

3

당신이 클래스 경로에 라이브러리가있는 경우 JodaTime 유형에 필요한 Converter 구현이 등록되어 있어야합니다 (글을 쓰는 시점에서 1.2.0.RELEASE) 봄 데이터 MongoDB의 최신 버전을 사용하는 경우합니다 (according ticket 참조).

이전 버전을 사용해야하는 경우 reference documentation에서 설명한대로 이러한 변환기를 수동으로 작성하고 등록해야합니다.

+0

나는 최신 버전을 사용하고있다. 그러나 문제는 QueryDsl과 관련이 있거나 적어도 DateTime을 datepath로 취급하지 않는 MongoAnnotationProcessor와 같다고 생각한다. – Luciano

+0

문제가 발생했습니다. https://jira.springsource.org/browse/DATAMONGO-624 – Luciano