diff --git a/src/main/java/com/iemr/common/CommonApplication.java b/src/main/java/com/iemr/common/CommonApplication.java index 83078018..b9b797b2 100644 --- a/src/main/java/com/iemr/common/CommonApplication.java +++ b/src/main/java/com/iemr/common/CommonApplication.java @@ -33,6 +33,9 @@ import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.web.client.RestTemplate; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializationFeature; +import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; import com.iemr.common.data.users.User; import com.iemr.common.utils.IEMRApplBeans; @@ -63,11 +66,11 @@ public RedisTemplate redisTemplate(RedisConnectionFactory factor RedisTemplate template = new RedisTemplate<>(); template.setConnectionFactory(factory); - // Use StringRedisSerializer for keys (userId) - template.setKeySerializer(new StringRedisSerializer()); - - // Use Jackson2JsonRedisSerializer for values (Users objects) Jackson2JsonRedisSerializer serializer = new Jackson2JsonRedisSerializer<>(User.class); + ObjectMapper mapper = new ObjectMapper(); + mapper.registerModule(new JavaTimeModule()); + mapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS); + serializer.setObjectMapper(mapper); template.setValueSerializer(serializer); return template; diff --git a/src/main/java/com/iemr/common/config/RedisConfig.java b/src/main/java/com/iemr/common/config/RedisConfig.java index faac71ae..e812b3f9 100644 --- a/src/main/java/com/iemr/common/config/RedisConfig.java +++ b/src/main/java/com/iemr/common/config/RedisConfig.java @@ -29,6 +29,9 @@ import org.springframework.data.redis.serializer.StringRedisSerializer; import org.springframework.session.data.redis.config.ConfigureRedisAction; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializationFeature; +import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; import com.iemr.common.data.users.User; @Configuration @@ -40,15 +43,15 @@ public ConfigureRedisAction configureRedisAction() { } @Bean - public RedisTemplate redisTemplate(RedisConnectionFactory factory) { - RedisTemplate template = new RedisTemplate<>(); + public RedisTemplate redisTemplate(RedisConnectionFactory factory) { + RedisTemplate template = new RedisTemplate<>(); template.setConnectionFactory(factory); - // Use StringRedisSerializer for keys (userId) - template.setKeySerializer(new StringRedisSerializer()); - - // Use Jackson2JsonRedisSerializer for values (Users objects) Jackson2JsonRedisSerializer serializer = new Jackson2JsonRedisSerializer<>(User.class); + ObjectMapper mapper = new ObjectMapper(); + mapper.registerModule(new JavaTimeModule()); + mapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS); + serializer.setObjectMapper(mapper); template.setValueSerializer(serializer); return template; diff --git a/src/main/java/com/iemr/common/data/users/User.java b/src/main/java/com/iemr/common/data/users/User.java index 4710b11d..89f9911a 100644 --- a/src/main/java/com/iemr/common/data/users/User.java +++ b/src/main/java/com/iemr/common/data/users/User.java @@ -28,6 +28,7 @@ import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; import com.google.gson.annotations.Expose; import com.iemr.common.data.callhandling.OutboundCallRequest; import com.iemr.common.data.feedback.FeedbackDetails; @@ -76,7 +77,7 @@ public class User implements Serializable { @Expose // @Transient - @OneToMany(/* mappedBy = "m_user", fetch = FetchType.EAGER */) + @OneToMany(fetch = FetchType.EAGER) @JoinColumn(updatable = false, insertable = false, name = "userID", referencedColumnName = "userID") private Set m_UserLangMappings;