Handle Transient Annotation. (#1173)
Closes #1147. Co-authored-by: mikereiche <michael.reiche@couchbase.com>
This commit is contained in:
@@ -34,6 +34,7 @@ import org.springframework.context.ApplicationContextAware;
|
||||
import org.springframework.core.CollectionFactory;
|
||||
import org.springframework.core.convert.ConversionService;
|
||||
import org.springframework.core.convert.support.DefaultConversionService;
|
||||
import org.springframework.data.annotation.Transient;
|
||||
import org.springframework.data.convert.EntityInstantiator;
|
||||
import org.springframework.data.couchbase.core.mapping.CouchbaseDocument;
|
||||
import org.springframework.data.couchbase.core.mapping.CouchbaseList;
|
||||
@@ -532,6 +533,10 @@ public class MappingCouchbaseConverter extends AbstractCouchbaseConverter implem
|
||||
idAttributes.put(order, convertToString(propertyObj));
|
||||
}
|
||||
|
||||
if (prop.isAnnotationPresent(Transient.class)) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!conversions.isSimpleType(propertyObj.getClass())) {
|
||||
writePropertyInternal(propertyObj, target, prop, false);
|
||||
} else {
|
||||
|
||||
@@ -24,6 +24,7 @@ import org.springframework.data.annotation.Id;
|
||||
import org.springframework.data.annotation.LastModifiedBy;
|
||||
import org.springframework.data.annotation.LastModifiedDate;
|
||||
import org.springframework.data.annotation.PersistenceConstructor;
|
||||
import org.springframework.data.annotation.Transient;
|
||||
import org.springframework.data.annotation.Version;
|
||||
import org.springframework.data.couchbase.core.mapping.Document;
|
||||
|
||||
@@ -41,6 +42,8 @@ public class User extends ComparableEntity {
|
||||
@Id private String id;
|
||||
private String firstname;
|
||||
private String lastname;
|
||||
@Transient
|
||||
private String transientInfo;
|
||||
@CreatedBy private String createdBy;
|
||||
@CreatedDate private long createdDate;
|
||||
@LastModifiedBy private String lastModifiedBy;
|
||||
@@ -94,4 +97,10 @@ public class User extends ComparableEntity {
|
||||
return Objects.hash(id, firstname, lastname);
|
||||
}
|
||||
|
||||
public String getTransientInfo(){
|
||||
return transientInfo;
|
||||
}
|
||||
public void setTransientInfo(String something) {
|
||||
transientInfo = something;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,6 +29,7 @@ import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Optional;
|
||||
import java.util.concurrent.Callable;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.concurrent.Executors;
|
||||
@@ -222,6 +223,16 @@ public class CouchbaseRepositoryQueryIntegrationTests extends ClusterAwareIntegr
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testTransient() {
|
||||
User user = new User("1", "Dave", "Wilson");
|
||||
user.setTransientInfo("something");
|
||||
userRepository.save(user);
|
||||
Optional<User> foundUser = userRepository.findById(user.getId());
|
||||
assertEquals(null, foundUser.get().getTransientInfo());
|
||||
userRepository.delete(user);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCas() {
|
||||
User user = new User("1", "Dave", "Wilson");
|
||||
|
||||
Reference in New Issue
Block a user