Hi Springer,
I am learning Spring Mongo, and I am using Spring 3.2.2, Spring Data Mongo 1.2.1.
https://github.com/hantsy/spring-san...ets/data-mongo
The source codes under https://github.com/hantsy/spring-sanbox also include other data store. such JPA. I used Data JPA and Query DSL, it worked well.
But switched to Mongo and QueryDSL, the @DBRef can not be queried.
The test codes:
Query by QSignup.signup.conferenceXXXX alway return empty list.
Confernce and Signup class.
The QueryDSL apt maven plugin is configured correctly and the QConferecne and QSignup are generated as expected.
I am learning Spring Mongo, and I am using Spring 3.2.2, Spring Data Mongo 1.2.1.
https://github.com/hantsy/spring-san...ets/data-mongo
The source codes under https://github.com/hantsy/spring-sanbox also include other data store. such JPA. I used Data JPA and Query DSL, it worked well.
But switched to Mongo and QueryDSL, the @DBRef can not be queried.
The test codes:
Code:
@Test
public void retrieveConferenceByQueryDSL() {
Conference conference = newConference();
conference.setSlug("test-jud");
conference.setName("Test JUD");
conference.getAddress().setCountry("US");
conference = conferenceRepository.save(conference);
log.debug("conference @" + conference);
String cid = conference.getId();
log.debug("saved conference id @" + cid);
assertTrue(null != cid);
QConference qconf = QConference.conference;
List<Conference> conferences = (List<Conference>) conferenceRepository
.findAll(qconf.slug.eq("test-jud"));
log.debug("conferences.size()@" + conferences.size());
assertTrue(1 == conferences.size());
List<Conference> conferences2 = (List<Conference>) conferenceRepository
.findAll(QConference.conference.address.country.eq("CN"));
log.debug("conferences2.size()@" + conferences2.size());
assertTrue(1 == conferences2.size());
Conference conf = conferenceRepository.findOne(cid);
Signup signup = newSignup();
signup.setConference(conf);
signup = signupRepository.save(signup);
log.debug("signup @" + signup);
assertTrue(null != signup.getId());
List<Signup> signups = (List<Signup>) signupRepository
.findAll(QSignup.signup.conference.eq(conf));
log.debug("signups.size()@" + signups.size());
assertTrue(1 == signups.size());
Signup signup2 = newSignup();
signup2.setComment("another comments");
signup2.setConference(conf);
signup2 = signupRepository.save(signup2);
log.debug("signup2 @" + signup2);
assertTrue(null != signup2.getId());
List<Signup> signups2 = (List<Signup>) signupRepository
.findAll(QSignup.signup.conference.eq(conf));
log.debug("signups2.size()@" + signups2.size());
assertTrue(2 == signups2.size());
}
Confernce and Signup class.
Code:
@Document
public class Conference {
@org.springframework.data.annotation.Id
private String id;
@org.springframework.data.annotation.Version
private Integer version;
Code:
@Document
public class Signup {
@Id
private String id;
@Version
private Integer version;
@DBRef
private Conference conference;
}