Guest User

Untitled

a guest
Jul 19th, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.14 KB | None | 0 0
  1. @Entity
  2. public User{
  3. @Id
  4. Long id;
  5. String name;
  6.  
  7. @ManyToMany
  8. List<Mission> missions;
  9.  
  10. }
  11.  
  12. @Entity
  13. public Mission{
  14. @Id
  15. Long id;
  16. String name;
  17.  
  18. @ManyToMany
  19. List<User> users;
  20. }
  21.  
  22. public interface MissionRepository extends CrudRepository<Mission, Long> {
  23. @Query(nativeQuery = true, "select * from mission join user on id = user_id where name = ?1")
  24. public List<Mission> findByname(String name);
  25. }
  26.  
  27. package com.ntg.crm.internal.entites;
  28.  
  29. import java.math.BigInteger;
  30. import java.util.List;
  31.  
  32. import javax.persistence.Entity;
  33. import javax.persistence.EntityResult;
  34. import javax.persistence.FetchType;
  35. import javax.persistence.FieldResult;
  36. import javax.persistence.Id;
  37. import javax.persistence.JoinColumn;
  38. import javax.persistence.JoinTable;
  39. import javax.persistence.ManyToMany;
  40. import javax.persistence.NamedNativeQuery;
  41. import javax.persistence.SqlResultSetMapping;
  42.  
  43. @SqlResultSetMapping(name = "Mission.findAllMissionsMapping", entities = @EntityResult(entityClass = Mission.class, fields = {
  44. @FieldResult(name = "name", column = "mname"), @FieldResult(name = "id", column = "mid")
  45. }))
  46. @NamedNativeQuery(name = "Mission.findAllMissions", query = "select m.id as mid,m.name as mname , info.id uid ,info.name uname from Mission m join user_info_missions um on m.id "
  47. + "= um.missions_id join user_Info info on info.id = um.user_id where info.name =:userName", resultSetMapping = "Mission.findAllMissionsMapping")
  48.  
  49. @Entity
  50. public class Mission {
  51.  
  52. public Mission() {
  53.  
  54. }
  55.  
  56. public Mission(BigInteger id, String name) {
  57. super();
  58. this.id = id;
  59. this.name = name;
  60. }
  61.  
  62. public Mission(BigInteger id, String name, List<User> users) {
  63. super();
  64. this.id = id;
  65. this.name = name;
  66. this.users = users;
  67. }
  68.  
  69. @Id
  70. BigInteger id;
  71. String name;
  72.  
  73. @ManyToMany(fetch = FetchType.EAGER)
  74. @JoinTable(name = "user_info_missions", joinColumns = @JoinColumn(name = "missions_id"), inverseJoinColumns = @JoinColumn(name = "user_id"))
  75. List<User> users;
  76.  
  77. public BigInteger getId() {
  78. return id;
  79. }
  80.  
  81. public void setId(BigInteger id) {
  82. this.id = id;
  83. }
  84.  
  85. public String getName() {
  86. return name;
  87. }
  88.  
  89. public void setName(String name) {
  90. this.name = name;
  91. }
  92.  
  93. public List<User> getUsers() {
  94. return users;
  95. }
  96.  
  97. public void setUsers(List<User> users) {
  98. this.users = users;
  99. }
  100.  
  101. }
  102.  
  103. package com.ntg.crm.internal.entites;
  104.  
  105. import java.util.List;
  106.  
  107. import javax.persistence.Entity;
  108. import javax.persistence.Id;
  109. import javax.persistence.JoinColumn;
  110. import javax.persistence.JoinTable;
  111. import javax.persistence.ManyToMany;
  112. import javax.persistence.Table;
  113.  
  114. import com.fasterxml.jackson.annotation.JsonIgnore;
  115.  
  116. @Entity
  117. @Table(name = "userInfo")
  118. public class User {
  119.  
  120. @Id
  121. long id;
  122. String name;
  123.  
  124. @ManyToMany(targetEntity = Mission.class)
  125. @JoinTable(name = "user_info_missions", joinColumns = @JoinColumn(name = "user_id"), inverseJoinColumns = @JoinColumn(name = "missions_id"))
  126. @JsonIgnore
  127. List<Mission> missions;
  128.  
  129. public long getId() {
  130. return id;
  131. }
  132.  
  133. public void setId(long id) {
  134. this.id = id;
  135. }
  136.  
  137. public String getName() {
  138. return name;
  139. }
  140.  
  141. public void setName(String name) {
  142. this.name = name;
  143. }
  144.  
  145. public List<Mission> getMissions() {
  146. return missions;
  147. }
  148.  
  149. public void setMissions(List<Mission> missions) {
  150. this.missions = missions;
  151. }
  152.  
  153. }
  154.  
  155. public List<Mission> findAllMissions(@Param("userName") String userName);
  156.  
  157. @Autowired
  158. TestRepository testRepo;
  159.  
  160. @RequestMapping(value = "", method = RequestMethod.GET, produces = "application/json", consumes = "application/json")
  161. @ResponseBody
  162. List<Mission> getall() {
  163. List<Mission> missions = testRepo.findAllMissions("Test");
  164. return missions;
  165. }
  166.  
  167. [
  168. {
  169. "id": 1,
  170. "name": "Mission 1",
  171. "users": [
  172. {
  173. "id": 1,
  174. "name": "Test"
  175. }
  176. ]
  177. },
  178. {
  179. "id": 2,
  180. "name": "Mission 2",
  181. "users": [
  182. {
  183. "id": 1,
  184. "name": "Test"
  185. }
  186. ]
  187. }
  188. ]
Add Comment
Please, Sign In to add comment