Expiration annotation on field will retrieve expiration in N1ql queries. (#1188)

Closes #1060.
This commit is contained in:
Michael Reiche
2021-08-16 12:53:46 -07:00
committed by GitHub
parent 6512fc087b
commit 52b1832cb5
5 changed files with 45 additions and 27 deletions

View File

@@ -22,6 +22,7 @@ import org.springframework.data.annotation.PersistenceConstructor;
import org.springframework.data.annotation.TypeAlias;
import org.springframework.data.annotation.Version;
import org.springframework.data.couchbase.core.mapping.Document;
import org.springframework.data.couchbase.core.mapping.Expiration;
/**
* Airport entity
@@ -41,6 +42,7 @@ public class Airport extends ComparableEntity {
@Version Number version;
@CreatedBy private String createdBy;
@Expiration private long expiration;
@PersistenceConstructor
public Airport(String id, String iata, String icao) {
@@ -61,6 +63,10 @@ public class Airport extends ComparableEntity {
return icao;
}
public long getExpiration() {
return expiration;
}
public Airport withId(String id) {
return new Airport(id, this.iata, this.icao);
}

View File

@@ -42,8 +42,7 @@ public class User extends ComparableEntity {
@Id private String id;
private String firstname;
private String lastname;
@Transient
private String transientInfo;
@Transient private String transientInfo;
@CreatedBy private String createdBy;
@CreatedDate private long createdDate;
@LastModifiedBy private String lastModifiedBy;
@@ -97,9 +96,10 @@ public class User extends ComparableEntity {
return Objects.hash(id, firstname, lastname);
}
public String getTransientInfo(){
public String getTransientInfo() {
return transientInfo;
}
public void setTransientInfo(String something) {
transientInfo = something;
}

View File

@@ -20,6 +20,7 @@ import static java.util.Arrays.asList;
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertNotEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertNull;
import static org.junit.jupiter.api.Assertions.assertThrows;
@@ -38,6 +39,7 @@ import java.util.concurrent.Future;
import java.util.Optional;
import java.util.stream.Collectors;
import com.couchbase.client.java.kv.UpsertOptions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
@@ -376,6 +378,15 @@ public class CouchbaseRepositoryQueryIntegrationTests extends ClusterAwareIntegr
userRepository.delete(user);
}
@Test
public void testExpiration() {
Airport airport = new Airport("1", "iata21", "icao21");
airportRepository.withOptions(UpsertOptions.upsertOptions().expiry(Duration.ofSeconds(10))).save(airport);
Airport foundAirport = airportRepository.findByIata(airport.getIata());
assertNotEquals(0, foundAirport.getExpiration());
airportRepository.delete(airport);
}
@Test
public void testStreamQuery() {
User user1 = new User("1", "Dave", "Wilson");