Advertisement
Guest User

Untitled

a guest
Oct 7th, 2016
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.19 KB | None | 0 0
  1. Table Name: User
  2. ---------------------
  3. id | email
  4. ---------------------
  5. 1 | m@gmail.com
  6. 2 | e@gmail.com
  7. ---------------------
  8.  
  9. Table Name: Userrole
  10. ----------------------------------------
  11. roleid | userid | rolename
  12. ----------------------------------------
  13. 1 | 1 | Admin
  14. 2 | 1 | HR
  15. 3 | 2 | Employee
  16. 4 | 2 | Executive
  17. ----------------------------------------
  18.  
  19. @Entity
  20. @Table(name="user")
  21. public class User{
  22. @Id
  23. @GeneratedValue
  24. private int id;
  25. @Column
  26. private String email;
  27. @OneToMany
  28. private List<Userrole> userroles;
  29. public void setId(int id){
  30. this.id = id;
  31. }
  32. public void setEmail(String email){
  33. this.email= email;
  34. }
  35. public int getId(){
  36. return id;
  37. }
  38. public String getEmail(){
  39. return email;
  40. }
  41. public List<Userrole> getUserrole(){
  42. return userroles;
  43. }
  44. }
  45.  
  46. @Entity
  47. @Table(name="userrole")
  48. public classs Userrole{
  49. @Id
  50. @GeneratorValue
  51. private int roleid;
  52. @Column
  53. private String rolename;
  54. @ManyToOne
  55. private User user;
  56.  
  57. // setter and getter
  58. }
  59. public List<User> findAall(){
  60.  
  61. // Type casting will throw an error
  62.  
  63. // This will throw error
  64. return (List<User>)session.getCurrentSession().createQuery("from User u join u.userroles");
  65.  
  66. // this will return List<Object[]>
  67. return session.getCurrentSession().createQuery("from User u join u.userroles");
  68.  
  69. // So i want to convert to this DTO using ModelMapper object
  70. }
  71.  
  72.  
  73. public class UserDTO{
  74. private int id;
  75. private String email;
  76. private List<Userrole> roleusers;
  77.  
  78. // setter and getter
  79. }
  80. public class UserroleDTO{
  81. private int roleid;
  82. private String rolename;
  83.  
  84. //settter and getter
  85. }
  86.  
  87. public interface UserDao{
  88. public List<User> findAll();
  89. }
  90.  
  91. @Repository
  92. public class UserDaoImpl implements UserDao{
  93.  
  94. @Override
  95. public List<User> findAll(){
  96.  
  97. // This will throw an error: ClassCastException
  98. return (List<User>)session.getCurrentSession().createQuery("from User u join u.userroles");
  99.  
  100. // This will work perfectly and return List<Object[]>
  101. return session.getCurrentSession().createQuery("from User u join u.userroles");
  102. }
  103. }
  104.  
  105. @Controller
  106. public class HomeController{
  107.  
  108. @Autowired
  109. private UserDao doa;
  110.  
  111. ModelMapper modelMapper = new ModelMapper();
  112.  
  113. @RequestMapping(value="/list")
  114. public List<User> findAll(){
  115. List<User> list = dao.findAll();
  116. List<UserDTO> dto = list.stream().map(user -> convertToDto(user)).collect(Collectors.toList());
  117. return dto;
  118.  
  119. // This will return
  120. [
  121. {
  122. "id":1,
  123. "email":"m@gmail.com",
  124. "userroles":[
  125. {
  126. "roleid":1,
  127. "rolename":"Admin"
  128. },
  129. {
  130. "roleid":2,
  131. "rolename":"HR"
  132. }
  133. ]
  134. },
  135. {
  136. "id":1,
  137. "email":"m@gmail.com",
  138. "userroles":[
  139. {
  140. "roleid":1,
  141. "rolename":"Admin"
  142. },
  143. {
  144. "roleid":2,
  145. "rolename":"HR"
  146. }
  147. ]
  148. },
  149. {
  150. "id":2,
  151. "email":"e@gmail.com",
  152. "userroles":[
  153. {
  154. "roleid":3,
  155. "rolename":"Employee"
  156. },
  157. {
  158. "roleid":4,
  159. "rolename":"Executive"
  160. }
  161. ]
  162. },
  163. {
  164. "id":2,
  165. "email":"e@gmail.com",
  166. "userroles":[
  167. {
  168. "roleid":3,
  169. "rolename":"Employee"
  170. },
  171. {
  172. "roleid":4,
  173. "rolename":"Executive"
  174. }
  175. ]
  176. }
  177. ]
  178.  
  179. // It should return
  180. [
  181. {
  182. "id":1,
  183. "email":"m@gmail.com",
  184. "userroles":[
  185. {
  186. "roleid":1,
  187. "rolename":"Admin"
  188. },
  189. {
  190. "roleid":2,
  191. "rolename":"HR"
  192. }
  193. ]
  194. },
  195. {
  196. "id":2,
  197. "email":"e@gmail.com",
  198. "userroles":[
  199. {
  200. "roleid":3,
  201. "rolename":"Employee"
  202. },
  203. {
  204. "roleid":4,
  205. "rolename":"Executive"
  206. }
  207. ]
  208. }
  209. ]
  210.  
  211.  
  212. }
  213. public UserDTO convertToDto(User user){
  214. UserDTO dto = modelMapper.map(user,UserDTO.class);
  215. return dto;
  216. }
  217. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement