Commit Graph

244 Commits

Author SHA1 Message Date
Michael Reiche
19c9e16717 Make withDurability() return WithScope type for all operations. (#1340)
Some of the operations were mistakenly declared to return a
WithCollection type, making it impossible to call the inScope()
method.

Closes #1329.
2022-02-11 08:22:04 -08:00
Michael Reiche
e20ebae10e Have tests remove the documents they insert. (#1336)
Closes #1335.
2022-02-09 21:56:22 -08:00
Michael Reiche
32f6a05462 Javadoc and other java 1_8 compatible changes in 50x back to main. (#1328)
Closes #1327.
2022-02-08 13:50:25 -08:00
Michael Reiche
c88a35c152 Fix slice support. (#1324)
Fix slice support. Also discontinue use of deprecated class.

Closes #1323.
2022-02-08 09:45:20 -08:00
Michael Reiche
895b2b270e Restore projection of class. (#1319)
Restore projection of class in queries. This is necessary for abstract repositories.

Closes #1315.
2022-02-03 06:19:32 -08:00
Michael Reiche
02bc0b35d3 Fix regression in IN operator. (#1309)
The regression occurred in changes for https://issues.couchbase.com/browse/MB-26606.

Closes #1308.
2022-01-25 10:11:35 -08:00
Michael Reiche
317d9b877c Allow caching null objects. (#1303)
Closes #939.

Co-authored-by: mikereiche <michael.reiche@couchbase.com>
2022-01-17 14:17:53 -08:00
Michael Reiche
e15c6d0b4b Copy sort from pageable to query. (#1305)
Closes #1304.
2022-01-17 11:01:56 -08:00
Michael Reiche
3a216a83b4 Incorporate changes from 5.0.x and bump Couchbase SDK. (#1287)
Closes #1286.

Co-authored-by: mikereiche <michael.reiche@couchbase.com>
2022-01-06 15:00:49 -08:00
Michael Reiche
6c6acf8ae2 Handle Collection<> parameters to repository query methods. (#1271)
Closes #1270.

Co-authored-by: mikereiche <michael.reiche@couchbase.com>
2021-11-12 07:15:45 -08:00
yyfMichaelYan
d8d249502d fix flaky test writesAndReadsCustomFieldsConvertedClass (#1264) 2021-11-08 11:40:01 -08:00
Michael Reiche
9f2d7ee6b5 Field named id treated as document id. (#1261)
Closes #1258.

Co-authored-by: mikereiche <michael.reiche@couchbase.com>
2021-10-26 10:52:50 -07:00
Michael Reiche
e1b0ea98d9 Reinstate the getDefaultConsistency() method in the Configuration. (#1249)
Closes #1243.
2021-10-22 11:42:55 -07:00
Michael Reiche
66cc1b5491 Changes for PR 1223 that I had missed. (#1230)
Closes #1229.
2021-09-14 16:38:11 -07:00
Michael Reiche
b9fa1c76ab Fix test failure against mocked. (#1227)
Closes #1226.
2021-09-14 11:10:16 -07:00
Michael Reiche
1e774d460b Test case for exceptions thrown from events - validation. (#1225)
Closes #1224.
2021-09-14 10:09:51 -07:00
Michael Reiche
a879d0b4e3 Use expiry(duration) with duration. (#1223)
Also adds test for exceptions thrown during events - with validator.

Closes #1204.
2021-09-14 09:49:12 -07:00
Michael Reiche
7c1167f302 Specifying withExpiry(Duration) on findById() uses getTouchAndRead(). (#1196)
Closes #982.
2021-09-13 11:21:23 -07:00
Michael Reiche
345af53930 Pass source as parent when reading subobject. (#1222)
Closes #1221.

Co-authored-by: mikereiche <michael.reiche@couchbase.com>
2021-09-13 11:11:05 -07:00
Michael Reiche
da3e8e0e36 Support N1QL Join Annotations. (#1211)
* Support N1QL Join Annotations.

Closes #1198.
2021-09-12 18:38:01 -07:00
Michael Reiche
4bd82ea23c Add project(fields) to findByQuery similar to same method on findById. (#1212)
Closes #1208, #1213.
2021-09-12 17:17:47 -07:00
Michael Reiche
bcf11ce856 Support derived queries from methods named findDistinctF1AndF2ByF3() (#1202)
Support derived queries from methods named findDistinctF1AndF2ByF3().

Closes #1200.
2021-08-23 13:51:55 -07:00
Michael Reiche
f0880daf7a Fix ArrayIndexOutOfBoundsException on String queries that use paging. (#1197)
Closes #1155.

Co-authored-by: mikereiche <michael.reiche@couchbase.com>
2021-08-23 13:06:57 -07:00
Michael Reiche
dffd203a57 Remove the sort from query before executing count. (#1194)
Also creates the query with skip and limit from any Pageable parameter instead of applying it later.
Closes #1191.
2021-08-18 09:07:15 -07:00
Michael Reiche
7e2963a365 Throw an explicit exception if count query does not return a count. (#1195)
Also just use the first projected property instead of one explicitly named "count".

Closes #925,#960.
2021-08-18 09:06:43 -07:00
Michael Reiche
07022c1e86 Remove unnecessary auditorAwareRef from test config. (#1189)
Remove unnecessary auditorAwareRef from test config as it causes
confusion. The property does not need to be preset for the auditorAwareRef
bean to be used.
The dateTimeProviderRef must be present for the provided
dateTimeProviderRef bean to be used.

Closes #1052.
2021-08-17 10:35:33 -07:00
Michael Reiche
fada241988 N1ql query should project getFieldName() instead of getName(). (#1185)
Closes #1184.
2021-08-16 13:02:55 -07:00
Michael Reiche
d210678c78 Field(name=myName) annotation work like Field(myName) and Field(value=myName). (#1186)
Closes #1068.
2021-08-16 12:55:02 -07:00
Michael Reiche
52b1832cb5 Expiration annotation on field will retrieve expiration in N1ql queries. (#1188)
Closes #1060.
2021-08-16 12:53:46 -07:00
Michael Reiche
6512fc087b To support jdk 16, add converters and module-info. (#1167)
To support jdk 16, add converters and module-info.

Closes #1057.
2021-08-13 11:28:04 -07:00
Michael Reiche
51b0d32636 Add Transient, Stream and Flux Pair tests. (#1175)
Closes #1174.
2021-08-11 14:45:01 -07:00
Michael Reiche
7d5e33ad71 Handle auto index on field path. (#1169)
Closes #1166.

Co-authored-by: mikereiche <michael.reiche@couchbase.com>
2021-08-11 10:29:05 -07:00
Michael Reiche
9e3bfe5b71 Omit annotations from the repository and domaintype in CrudMethodMetadata. (#1170)
Omit annotations from the repository and domaintype in
CrudMethodMetadata as they may be different for the same method.
The annotations from the repository and domaintype are obtained directly
in CouchbaseRepositoryBase.

Closes #1168.

Co-authored-by: mikereiche <michael.reiche@couchbase.com>
2021-08-10 20:17:12 -07:00
Michael Reiche
7cde6b919e Scopes and collections for repositories (#1149)
* Add support for scopes and collections for repositories.

Adds DynamicProxyable and DynamicInvocationHandler to
set scope/collection/options on PseudoArgs when calling
operations via repository interfaces.

Closes #963.

Co-authored-by: mikereiche <michael.reiche@couchbase.com>
2021-08-09 09:57:29 -07:00
Michael Reiche
155663e66f Add missing hooks for callbacks. (#1142)
1) the previous change (#955) to CouchbaseAuditingRegister intended to register
 AuditingEntityCallback instead of AuditingEventListener but only changed the
name that AuditingEventListener was registered with. Since
AuditingEventListener does exactly the same thing as AuditingEntityCallback,
it behaved as those AuditingEntityCallback was being used.

2) It seems that the two mechanisms - EntityCallback and EventListener
both do more-or-less the same thing. I'm not sure why there are two
mechanisms to do the same thing.

3) Although the ReactiveAuditingEntityCallback mechanism is triggered
only for reactive operations and the non-reactive AuditingEntityCallback
is triggered only for non-reactive operations, the events are triggered
for both. Since there was a desire to have distinct callbacks for
reactive/non-reactive operations, I also made distinct events for
reactive/non-reactive operations.  However both the reactive and non-reactive
event mechanisms are triggered for either reactive and non-reactive operations,
so it is necessary for the mechanism to determine if it should act on the
event.

4) Although there is an AbstractCouchbaseEventListener that is extended by
LoggingEventListener and ValidatingEventListener, AuditingEventListener does
not extend it (maybe it should).

Closes #1074.

Co-authored-by: mikereiche <michael.reiche@couchbase.com>
2021-06-09 21:54:24 -04:00
Michael Reiche
67a7937cd2 Improve framework for custom mapping couchbase converter. (#1148)
1) change examples in Config to show creating repository mappings using
existing MappingCouchbaseConverter (which have customConversions /
BeanNames.COUCHBASE_CUSTOM_CONVERSIONS and applicationContext)
instead of creating their own and then adding the customConversion and
applicationContext.

2) replace @Autowired couchbaseObjectMapper with couchbaseObjectMapper()
to avoid the following when using @ComponentScan :
Unsatisfied dependency expressed through field 'couchbaseObjectMapper';
nested exception is org.springframework.beans.factory.
BeanCurrentlyInCreationException: Error creating bean with name
'couchbaseObjectMapper': Requested bean is currently in creation: Is
there an unresolvable circular reference?

3) remove unused members fro StringBasedN1qlQueryParser

Closes #1141.

Co-authored-by: mikereiche <michael.reiche@couchbase.com>
2021-06-09 21:36:45 -04:00
Michael Reiche
43889e6a9c Scope and collection API for template. (#1133)
Scope and Collection API for template.

Closes #963.
Original pull request: #1071.
2021-06-02 09:38:02 -04:00
Michael Reiche
a80663119c Expose ObjectMapper used by JsonSerializer (#1132)
Closes #1130.

Co-authored-by: mikereiche <michael.reiche@couchbase.com>
2021-05-05 12:16:38 -07:00
Michael Reiche
36de313466 Add override of toN1qlRemoveString() to StringQuery. (#1135)
Closes #1131.
Original pull request: #1135.

Co-authored-by: mikereiche <michael.reiche@couchbase.com>
2021-05-04 07:25:18 -07:00
Jorge Rodríguez Martín
3f1cea174f Add support for reactive auditing and ReactiveEntityCallbacks.
Add support for reactive auditing and ReactiveEntityCallbacks.
Also, adapt CouchbaseAuditingRegistrar for support AuditingEntityCallback.

Closes #955.
Original pull request: #1102.

Co-authored-by: Carlos Espinado <carlosemart>
Co-authored-by: mikereiche <michael.reiche@couchbase.com>
2021-04-06 11:58:42 -04:00
Michael Reiche
5a04711a6d DefaultCouchbaseTypeMapper uses TypeAlias annotation if present.
DefaultCouchbaseTypeMapper uses TypeAlias annotation if present.
Test case also uncovered that TypeAlias was being ignored for
string queries.

Closes #1119.
Original pull request: #1120.

Co-authored-by: mikereiche <michael.reiche@couchbase.com>
2021-04-06 08:13:50 -07:00
Michael Reiche
9b848f6254 Specific message for string queries that do not project __id and __cas.
com.couchbase.client.core.error.CouchbaseException: query did not project __id.
 Either use #{#n1ql.selectEntity} or project __id and __cas :
 SELECT __cas, * from `b406ab45-ef95-441f-a318-76b8e8af2d76` where iata = $1

Closes #1097.
Original pull request: #1114.

Co-authored-by: mikereiche <michael.reiche@couchbase.com>
2021-04-06 08:03:02 -07:00
Michael Reiche
2e8d655751 Fix N1QLExpression keys.
Fix syntax of N1QLExpression keys.

Closes #1064.

Co-authored-by: mikereiche <michael.reiche@couchbase.com>
2021-03-31 06:10:42 -07:00
Michael Reiche
d16bbff4fe Support enum arguments on repository queries.
Support enum in AbstractCouchbaseConverter.convertForWriteIfNeeded()
and also call that from
MappingCouchbaseConverter.getPotentiallyConvertedSimpleWrite()

Closes #1069.
Original pull request: #1112.

Co-authored-by: mikereiche <michael.reiche@couchbase.com>
2021-03-30 17:32:22 -04:00
Michael Reiche
fe8d3feb48 Add QueryCriteria arrayContaining.
Add QueryCriteria arrayContaining which maps to n1ql array_containing.

Closes #1073.
Original pull request: #1109.

Co-authored-by: mikereiche <michael.reiche@couchbase.com>
2021-03-30 17:32:22 -04:00
Michael Reiche
4c428c5351 Use queryScanConsistency on reactive deleteAll().
It was present on non-Reactive, but missing from reactive.

Closes #1096.
Original pull request: #1108.

Co-authored-by: mikereiche <michael.reiche@couchbase.com>
2021-03-30 17:32:22 -04:00
Michael Reiche
cbcd048f3d Upgrade Couchbase Java SDK to 3.1.3. (#1098)
Closes #1079.

Co-authored-by: mikereiche <michael.reiche@couchbase.com>
2021-03-15 12:12:06 -07:00
Michael Reiche
a142f0895a Revert changes to public apis that were altered instead of just deprecated. (#1093)
Closes #1092.

Co-authored-by: mikereiche <michael.reiche@couchbase.com>
2021-03-05 17:01:58 -08:00
Michael Reiche
8c6598271a Revert "DATACOUCH-550 - Refactored the usage of CouchbasePersistentEntityIndexCreator. (#298)" (#1087)
This reverts commit 80bae4bf67.

Co-authored-by: mikereiche <michael.reiche@couchbase.com>
2021-02-17 09:19:06 -08:00
Michael Reiche
41ee1f99ee DATACOUCH-1066 - Make QueryCriteria key a N1qlExpression. (#1082)
This is a merge of mmonti's changeset into master. The changeset was made
on top of 4.1.x instead of master so it has a little catching up to do.

Co-authored-by: mikereiche <michael.reiche@couchbase.com>
2021-02-16 18:08:06 -08:00