Guest User

Untitled

a guest
Feb 18th, 2018
334
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.53 KB | None | 0 0
  1. Resolved exception caused by Handler execution: org.springframework.data.mapping.context.InvalidPersistentPropertyPath: No property userDetails found on com.samples.springdatamongodb.model.User!
  2.  
  3. {
  4. "token": null,
  5. "userDetails": {
  6. "email": "borgymanotoy@gmail.com",
  7. "lastName": "Manotoy",
  8. "firstName": "Borgy",
  9. "middleName": null
  10. },
  11. "userId": "5a86a67a5f03a313dccd2053",
  12. "userAuthenticationInfo": {
  13. "password": "freeforall",
  14. "username": "borgymanotoy"
  15. }
  16. }
  17.  
  18. package com.samples.springdatamongodb.config;
  19.  
  20. import com.mongodb.Mongo;
  21. import com.mongodb.MongoClient;
  22. import com.ulisesbocchio.jasyptspringboot.annotation.EncryptablePropertySource;
  23. import org.springframework.context.annotation.Configuration;
  24. import org.springframework.core.env.Environment;
  25. import org.springframework.data.mongodb.config.AbstractMongoConfiguration;
  26. import org.springframework.data.mongodb.repository.config.EnableMongoRepositories;
  27.  
  28. import javax.annotation.Resource;
  29.  
  30. @Configuration
  31. @EnableMongoRepositories(basePackages = "com.samples.springdatamongodb")
  32. @EncryptablePropertySource(name = "EncryptedProperties", value = {"classpath:/profiles/${profile:dev}/db.properties", "classpath:/profiles/${profile:dev}/application.properties"})
  33. public class MongoConfig extends AbstractMongoConfiguration {
  34.  
  35. private static final String PROPERTY_NAME_DATABASE_NAME = "spring.data.mongodb.database";
  36. private static final String PROPERTY_NAME_DATABASE_HOST = "spring.data.mongodb.host";
  37. private static final String PROPERTY_NAME_DATABASE_PORT = "spring.data.mongodb.port";
  38.  
  39. @Resource
  40. private Environment m_environment;
  41.  
  42.  
  43. @Override
  44. protected String getDatabaseName() {
  45. return m_environment.getRequiredProperty(PROPERTY_NAME_DATABASE_NAME);
  46. }
  47.  
  48. @Override
  49. public Mongo mongo() throws Exception {
  50. return new MongoClient(m_environment.getRequiredProperty(PROPERTY_NAME_DATABASE_HOST),
  51. Integer.parseInt(m_environment.getRequiredProperty(PROPERTY_NAME_DATABASE_PORT)));
  52. }
  53.  
  54. }
  55.  
  56. package com.samples.springdatamongodb.model;
  57.  
  58. import org.springframework.data.annotation.Id;
  59. import org.springframework.data.annotation.Transient;
  60. import org.springframework.data.mongodb.core.mapping.Document;
  61. import org.springframework.data.mongodb.core.mapping.Field;
  62.  
  63.  
  64. @Document(collection = "users")
  65. public class User {
  66.  
  67. @Id
  68. private String m_userId;
  69.  
  70. @Field("userDetails")
  71. private UserDetail m_userDetails;
  72.  
  73. @Field("userAuthenticationInfo")
  74. private UserAuthenticationInfo m_userAuthenticationInfo;
  75.  
  76. @Transient
  77. @Field("token")
  78. private String m_token;
  79.  
  80.  
  81. public String getUserId() {
  82. return m_userId;
  83. }
  84.  
  85. public void setUserId(String userId) {
  86. m_userId = userId;
  87. }
  88.  
  89. public UserDetail getUserDetails() {
  90. return m_userDetails;
  91. }
  92.  
  93. public void setUserDetails(UserDetail userDetails) {
  94. m_userDetails = userDetails;
  95. }
  96.  
  97. public UserAuthenticationInfo getUserAuthenticationInfo() {
  98. return m_userAuthenticationInfo;
  99. }
  100.  
  101. public void setUserAuthenticationInfo(UserAuthenticationInfo userAuthenticationInfo) {
  102. m_userAuthenticationInfo = userAuthenticationInfo;
  103. }
  104.  
  105. public String getToken() {
  106. return m_token;
  107. }
  108.  
  109. public void setToken(String token) {
  110. m_token = token;
  111. }
  112.  
  113. }
  114.  
  115. package com.samples.springdatamongodb.model;
  116.  
  117. import org.springframework.data.mongodb.core.mapping.Field;
  118.  
  119. public class UserAuthenticationInfo {
  120.  
  121. @Field("username")
  122. private String m_username;
  123.  
  124. @Field("password")
  125. private String m_password;
  126.  
  127.  
  128. public String getUsername() {
  129. return m_username;
  130. }
  131.  
  132. public void setUsername(String username) {
  133. m_username = username;
  134. }
  135.  
  136. public String getPassword() {
  137. return m_password;
  138. }
  139.  
  140. public void setPassword(String password) {
  141. m_password = password;
  142. }
  143.  
  144. }
  145.  
  146. package com.samples.springdatamongodb.model;
  147.  
  148. import org.hibernate.validator.constraints.NotBlank;
  149. import org.springframework.data.mongodb.core.mapping.Field;
  150.  
  151. import javax.validation.constraints.Size;
  152.  
  153. public class UserDetail {
  154.  
  155. @Field("firstName")
  156. private String m_firstName;
  157.  
  158. @Field("lastName")
  159. private String m_lastName;
  160.  
  161. @Field("middleName")
  162. private String m_middleName;
  163.  
  164. @Field("email")
  165. @NotBlank
  166. @Size(max = 200)
  167. private String m_email;
  168.  
  169.  
  170. public String getFirstName() {
  171. return m_firstName;
  172. }
  173.  
  174. public void setFirstName(String firstName) {
  175. m_firstName = firstName;
  176. }
  177.  
  178. public String getLastName() {
  179. return m_lastName;
  180. }
  181.  
  182. public void setLastName(String lastName) {
  183. m_lastName = lastName;
  184. }
  185.  
  186. public String getEmail() {
  187. return m_email;
  188. }
  189.  
  190. public void setEmail(String email) {
  191. m_email = email;
  192. }
  193.  
  194. public String getMiddleName() {
  195. return m_middleName;
  196. }
  197.  
  198. public void setMiddleName(String middleName) {
  199. m_middleName = middleName;
  200. }
  201. }
  202.  
  203. package com.samples.springdatamongodb.repository;
  204.  
  205. import com.ploverbay.ticketing.authentication.model.User;
  206. import org.springframework.data.mongodb.repository.MongoRepository;
  207. import org.springframework.data.mongodb.repository.Query;
  208. import org.springframework.stereotype.Repository;
  209.  
  210.  
  211. @Repository
  212. public interface UserRepository extends MongoRepository<User, String> {
  213.  
  214. @Query("{ '_id' : ?0 }")
  215. User findByUserId(String userId);
  216.  
  217. @Query("{ 'userDetails.email' : ?0 }")
  218. User findByEmail(String email);
  219.  
  220. }
  221.  
  222. package com.samples.springdatamongodb.service;
  223.  
  224. import com.samples.springdatamongodb.model.User;
  225. import com.samples.springdatamongodb.repository.UserRepository;
  226. import org.springframework.beans.factory.annotation.Autowired;
  227. import org.springframework.stereotype.Service;
  228.  
  229. import java.util.List;
  230.  
  231. @Service("userService")
  232. public class UserService {
  233.  
  234. @Autowired
  235. private UserRepository m_userRepository;
  236.  
  237.  
  238. ...
  239.  
  240. public User findByEmail(String email) {
  241. return m_userRepository.findByEmail(email);
  242. }
  243.  
  244. public User saveUser(User user) {
  245. return m_userRepository.save(user);
  246. }
  247. ...
  248.  
  249. }
  250.  
  251. package com.samples.springdatamongodb.controller;
  252.  
  253. import com.samples.springdatamongodb.model.ErrorMessage;
  254. import com.samples.springdatamongodb.model.User;
  255. import com.samples.springdatamongodb.model.ValidationResponse;
  256. import com.samples.springdatamongodb.service.UserService;
  257. import org.slf4j.Logger;
  258. import org.slf4j.LoggerFactory;
  259. import org.springframework.beans.factory.annotation.Autowired;
  260. import org.springframework.http.HttpStatus;
  261. import org.springframework.http.ResponseEntity;
  262. import org.springframework.validation.BindingResult;
  263. import org.springframework.validation.FieldError;
  264. import org.springframework.web.bind.annotation.*;
  265.  
  266. import java.util.ArrayList;
  267. import java.util.List;
  268.  
  269. @RestController
  270. @RequestMapping("/api/accounts")
  271. public class AccountsController {
  272.  
  273. private final Logger logger = LoggerFactory.getLogger(getClass());
  274.  
  275. @Autowired
  276. private UserService m_userService;
  277.  
  278. ...
  279.  
  280. @GetMapping("/search")
  281. public User getUserByEmail(@RequestParam("email") String email) {
  282. logger.debug("Getting user with email: ", email);
  283. return m_userService.findByEmail(email);
  284. }
  285.  
  286. @PostMapping
  287. public Object addUser(@RequestBody User user, BindingResult bindingResult) {
  288. logger.debug("Saving user : " + user);
  289. if (!bindingResult.hasErrors()) {
  290. return m_userService.saveUser(user);
  291. } else {
  292. return handleValidationError(bindingResult);
  293. }
  294. }
  295.  
  296. ...
  297.  
  298. }
Add Comment
Please, Sign In to add comment