@@ -772,7 +772,7 @@ public class MappingCouchbaseConverter extends AbstractCouchbaseConverter implem
|
||||
type, prop, accessor));
|
||||
} else {
|
||||
CouchbaseDocument embeddedDoc = new CouchbaseDocument();
|
||||
writeInternalRoot(element, embeddedDoc, prop.getTypeInformation(), false, prop);
|
||||
writeInternalRoot(element, embeddedDoc, prop != null ? prop.getTypeInformation() : TypeInformation.of(elementType), false, prop);
|
||||
target.put(embeddedDoc);
|
||||
}
|
||||
|
||||
|
||||
@@ -463,6 +463,9 @@ public class StringBasedN1qlQueryParser {
|
||||
if (value instanceof CouchbaseDocument) {
|
||||
value = ((CouchbaseDocument) value).export();
|
||||
}
|
||||
if (value instanceof CouchbaseList) {
|
||||
value = ((CouchbaseList) value).export();
|
||||
}
|
||||
if (placeholder != null && placeholder.charAt(0) == ':') {
|
||||
placeholder = placeholder.replaceFirst(":", "");
|
||||
putNamedValue(namedValues, placeholder, value);
|
||||
|
||||
@@ -40,4 +40,11 @@ public interface UserSubmissionRepository extends CouchbaseRepository<UserSubmis
|
||||
@ScanConsistency(query = QueryScanConsistency.REQUEST_PLUS)
|
||||
List<Airport> setByIdAddress(String id, Address abc);
|
||||
|
||||
@Query("UPDATE #{#n1ql.bucket} set courses=$2 where meta().id=$1")
|
||||
@ScanConsistency(query = QueryScanConsistency.REQUEST_PLUS)
|
||||
void setOrderedCourses(String id, Course[] courses);
|
||||
|
||||
@Query("UPDATE #{#n1ql.bucket} set courses=$courses where meta().id=$id")
|
||||
@ScanConsistency(query = QueryScanConsistency.REQUEST_PLUS)
|
||||
void setNamedCourses(String id, Course[] courses);
|
||||
}
|
||||
|
||||
@@ -72,6 +72,7 @@ import org.springframework.data.couchbase.domain.Airport;
|
||||
import org.springframework.data.couchbase.domain.AirportMini;
|
||||
import org.springframework.data.couchbase.domain.AirportRepository;
|
||||
import org.springframework.data.couchbase.domain.AirportRepositoryScanConsistencyTest;
|
||||
import org.springframework.data.couchbase.domain.Course;
|
||||
import org.springframework.data.couchbase.domain.Iata;
|
||||
import org.springframework.data.couchbase.domain.NaiveAuditorAware;
|
||||
import org.springframework.data.couchbase.domain.Person;
|
||||
@@ -855,7 +856,45 @@ public class CouchbaseRepositoryQueryIntegrationTests extends ClusterAwareIntegr
|
||||
Optional<UserSubmission> fetched = userSubmissionRepository.findById(userSubmission.getId());
|
||||
assertEquals(address, fetched.get().getAddress());
|
||||
} finally {
|
||||
airportRepository.deleteById(userSubmission.getId());
|
||||
userSubmissionRepository.deleteById(userSubmission.getId());
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
void namedParameterList() throws Exception {
|
||||
UserSubmission userSubmission = new UserSubmission();
|
||||
userSubmission.setId("123");
|
||||
try {
|
||||
userSubmission.setUsername("updateObject");
|
||||
userSubmissionRepository.save(userSubmission);
|
||||
Course[] courses = new Course[]{ new Course("1", "2", "3"), new Course("4","5","6")};
|
||||
userSubmissionRepository.setNamedCourses(userSubmission.getId(), courses);
|
||||
Optional<UserSubmission> fetched = userSubmissionRepository.findById(userSubmission.getId());
|
||||
assertEquals(courses.length, fetched.get().getCourses().size());
|
||||
for(int i=0; i< courses.length; i++){
|
||||
assertEquals(courses[i], fetched.get().getCourses().get(i));
|
||||
}
|
||||
} finally {
|
||||
userSubmissionRepository.deleteById(userSubmission.getId());
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
void orderedParameterList() throws Exception {
|
||||
UserSubmission userSubmission = new UserSubmission();
|
||||
userSubmission.setId("123");
|
||||
try {
|
||||
userSubmission.setUsername("updateObject");
|
||||
userSubmissionRepository.save(userSubmission);
|
||||
Course[] courses = new Course[]{ new Course("1", "2", "3"), new Course("4","5","6")};
|
||||
userSubmissionRepository.setOrderedCourses(userSubmission.getId(), courses);
|
||||
Optional<UserSubmission> fetched = userSubmissionRepository.findById(userSubmission.getId());
|
||||
assertEquals(courses.length, fetched.get().getCourses().size());
|
||||
for(int i=0; i< courses.length; i++){
|
||||
assertEquals(courses[i], fetched.get().getCourses().get(i));
|
||||
}
|
||||
} finally {
|
||||
userSubmissionRepository.deleteById(userSubmission.getId());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user