Advertisement
Guest User

Untitled

a guest
Mar 1st, 2017
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.48 KB | None | 0 0
  1. @Data
  2. @Entity
  3. @EqualsAndHashCode(callSuper = false)
  4. @EntityListeners({ AbstractEntityListener.class })
  5. @Audited
  6. public class FaqCategory extends AbstractEntity {
  7.  
  8. @Id
  9. @GeneratedValue(strategy = GenerationType.AUTO)
  10. private Long id;
  11.  
  12. @Column(name = "display_name")
  13. private String displayName;
  14.  
  15. private String summary;
  16.  
  17. @OneToMany(mappedBy = "faqCategory", cascade = CascadeType.PERSIST, fetch = FetchType.EAGER, orphanRemoval = true)
  18. private Set<FaqArticle> faqArticle = new HashSet<FaqArticle>();
  19. }
  20.  
  21. @Data
  22. @Entity
  23. @EqualsAndHashCode(callSuper = false, exclude = { "faqCategory", "keywords","faqRelatedArticles"})
  24. @EntityListeners({ AbstractEntityListener.class })
  25. @ToString(exclude = { "faqCategory", "keywords", "faqRelatedArticles"})
  26. @Audited
  27. public class FaqArticle extends AbstractEntity {
  28.  
  29. @Id
  30. @GeneratedValue(strategy = GenerationType.AUTO)
  31. private Long id;
  32.  
  33. private String body;
  34.  
  35. @ElementCollection(fetch = FetchType.LAZY)
  36. @CollectionTable(name = "keyword", joinColumns = { @JoinColumn(name = "id") })
  37. private Set<String> keywords = new HashSet<String>();
  38.  
  39. @OneToMany(fetch = FetchType.LAZY, cascade = {CascadeType.PERSIST,CascadeType.MERGE})
  40. private Set<FaqArticle> faqRelatedArticles = new HashSet<FaqArticle>();
  41.  
  42. @Column(name = "publish")
  43. private Boolean publish;
  44.  
  45. @ManyToOne(fetch = FetchType.LAZY)
  46. private FaqCategory faqCategory;
  47. }
  48.  
  49. @Service
  50. public class FaqArticleService extends AbstractService<FaqArticle, Long> {
  51.  
  52. @Autowired
  53. private FaqArticleRepository faqArticleRepository;
  54.  
  55. @Autowired
  56. private DTOToDomainConverstionService dtoToDomainConverstionService;
  57.  
  58. public FaqArticleService(FaqArticleRepository faqArticleRepository) {
  59. super(faqArticleRepository);
  60. this.faqArticleRepository = faqArticleRepository;
  61. }
  62.  
  63. public FaqArticle getById(Long id) {
  64. return faqArticleRepository.findOne(id);
  65. }
  66.  
  67. @Transactional
  68. public FaqArticle createFaqArticle(FaqArticleDTO faqArticleDTO) {
  69. FaqArticle faqArticle = dtoToDomainConverstionService.convertFaqArticle(faqArticleDTO);
  70. return faqArticleRepository.save(faqArticle);
  71. }
  72.  
  73. public Page<FaqArticle> getAllFaqArticle(Pageable pageable) {
  74. return faqArticleRepository.findAll(pageable);
  75. }
  76.  
  77. public List<FaqArticle> getAllFaqArticle() {
  78. return faqArticleRepository.findAll();
  79. }
  80.  
  81. @Transactional
  82. public void deleteFaqArticle(Long id) {
  83. FaqArticle faqArticle = getById(id);
  84. faqArticleRepository.delete(faqArticle);
  85. }
  86.  
  87. @Transactional
  88. public void deleteAllFaqArticle() {
  89. faqArticleRepository.deleteAll();
  90. }
  91.  
  92. }
  93.  
  94. @RestController
  95. @RequestMapping(value = "/faqArticles")
  96. public class FaqArticleController {
  97.  
  98. @Autowired
  99. private FaqArticleService faqArticleService;
  100.  
  101. @Autowired
  102. private FaqArticleResourceAssembler faqArticleResourseAssembler;
  103.  
  104. @Autowired
  105. private PagedResourcesAssembler<FaqArticle> pagedResourcesAssembler;
  106.  
  107. @SuppressWarnings({ "rawtypes", "unchecked" })
  108. @RequestMapping(method = RequestMethod.GET)
  109. public ResponseEntity<PagedResources> getAllFaqArticle(Pageable pageable) {
  110. Page<FaqArticle> faqArticlePage = faqArticleService.getAllFaqArticle(pageable);
  111. PagedResources pagedResources = pagedResourcesAssembler.toResource(faqArticlePage, faqArticleResourseAssembler);
  112.  
  113. if (faqArticlePage.getContent() == null || faqArticlePage.getContent().isEmpty()) {
  114. EmbeddedWrappers wrappers = new EmbeddedWrappers(false);
  115. EmbeddedWrapper wrapper = wrappers.emptyCollectionOf(FaqCategory.class);
  116. List<EmbeddedWrapper> embedded = Collections.singletonList(wrapper);
  117. pagedResources = new PagedResources(embedded, pagedResources.getMetadata(),
  118. pagedResources.getLinks());
  119. }
  120. return new ResponseEntity<PagedResources>(pagedResources, HttpStatus.OK);
  121. }
  122.  
  123. @RequestMapping(value = "/{id}", method = RequestMethod.GET)
  124. public ResponseEntity<FaqArticleResource> getFaqArticle(@PathVariable Long id){
  125. FaqArticle faqArticle = faqArticleService.getById(id);
  126. FaqArticleResource rsource = faqArticleResourseAssembler.toResource(faqArticle);
  127. return new ResponseEntity<FaqArticleResource>(rsource, HttpStatus.OK);
  128. }
  129.  
  130. @RequestMapping(method = RequestMethod.POST)
  131. public ResponseEntity<FaqArticleResource> saveFaqArticle(@RequestBody FaqArticleDTO faqArticleDTO){
  132. FaqArticle faqArticle = faqArticleService.createFaqArticle(faqArticleDTO);
  133. FaqArticleResource rsource = faqArticleResourseAssembler.toResource(faqArticle);
  134. return new ResponseEntity<FaqArticleResource>(rsource, HttpStatus.CREATED);
  135. }
  136.  
  137. @RequestMapping(method = RequestMethod.DELETE)
  138. public ResponseEntity<Void> deleteAllFaqArticle(){
  139. faqArticleService.deleteAllFaqArticle();
  140. return ResponseEntity.noContent().build();
  141. }
  142.  
  143. @RequestMapping(value = "/{id}",method = RequestMethod.DELETE)
  144. public ResponseEntity<Void> deleteFaqArticle(@PathVariable Long id){
  145. faqArticleService.deleteFaqArticle(id);
  146. return ResponseEntity.noContent().build();
  147. }
  148. }
  149.  
  150. # server config block
  151. server.port = 9999
  152.  
  153. # Connection url for the database "netgloo_blog"
  154. spring.datasource.url = jdbc:mysql://localhost:3306/assistlane?createDatabaseIfNotExist=true&verifyServerCertificate=false&useSSL=false&requireSSL=false
  155. spring.datasource.dataSourceClassName=com.mysql.jdbc.Driver
  156.  
  157. #spring.data.rest.basePath=/api
  158.  
  159. # Username and password
  160. spring.datasource.username = root
  161. spring.datasource.password = root
  162.  
  163. # Show or not log for each sql query
  164. spring.jpa.show-sql = true
  165.  
  166. # Hibernate ddl auto (create, create-drop, update)
  167. spring.jpa.hibernate.ddl-auto = update
  168.  
  169. spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
  170.  
  171. spring.jpa.properties.org.hibernate.envers.audit_table_suffix=_audit
  172. spring.jpa.properties.org.hibernate.envers.store_data_at_delete= true
  173.  
  174. # Naming strategy
  175. spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImprovedNamingStrategy
  176.  
  177. @Service
  178. public class DTOToDomainConverstionService {
  179.  
  180. public FaqCategory convertFAQCategory(FaqCategoryDTO faqCategoryDTO) {
  181.  
  182. FaqCategory faqCategory = new FaqCategory();
  183. Set<FaqArticleDTO> faqArticleDTOs = faqCategoryDTO.getFaqArticleDTO();
  184. Set<FaqArticle> faqArticles = new HashSet<FaqArticle>();
  185. for (FaqArticleDTO faqArticleDTO : faqArticleDTOs) {
  186. FaqArticle faqArticle = new FaqArticle();
  187. faqArticle.setBody(faqArticleDTO.getBody());
  188. faqArticle.setPublish(faqArticleDTO.getPublish());
  189. faqArticle.setKeywords(faqArticleDTO.getKeywords());
  190. faqArticle.setFaqCategory(faqCategory);
  191. Set<FaqArticle> subfaqArticles = new HashSet<FaqArticle>();
  192. for (FaqArticleDTO subfaqArticleDTO : faqArticleDTO.getFaqRelatedArticles()) {
  193. FaqArticle subfaqArticle = new FaqArticle();
  194. subfaqArticle.setBody(subfaqArticleDTO.getBody());
  195. subfaqArticle.setPublish(subfaqArticleDTO.getPublish());
  196. subfaqArticle.setKeywords(subfaqArticleDTO.getKeywords());
  197. subfaqArticle.setFaqCategory(faqCategory);
  198. subfaqArticles.add(subfaqArticle);
  199. }
  200. faqArticle.setFaqRelatedArticles(subfaqArticles);
  201. faqArticles.add(faqArticle);
  202. }
  203. faqCategory.setDisplayName(faqCategoryDTO.getDisplayName());
  204. faqCategory.setSummary(faqCategoryDTO.getSummary());
  205. faqCategory.setFaqArticle(faqArticles);
  206. return faqCategory;
  207. }
  208.  
  209. public FaqArticle convertFaqArticle(FaqArticleDTO faqArticleDTO) {
  210.  
  211. FaqArticle faqArticle = new FaqArticle();
  212. faqArticle.setBody(faqArticleDTO.getBody());
  213. faqArticle.setPublish(faqArticleDTO.getPublish());
  214. faqArticle.setKeywords(faqArticleDTO.getKeywords());
  215. /*Set<FaqArticle> subfaqArticles = new HashSet<FaqArticle>();
  216. for (FaqArticleDTO subfaqArticleDTO : faqArticleDTO.getFaqRelatedArticles()) {
  217. FaqArticle subfaqArticle = new FaqArticle();
  218. subfaqArticle.setBody(subfaqArticleDTO.getBody());
  219. subfaqArticle.setPublish(subfaqArticleDTO.getPublish());
  220. subfaqArticle.setKeywords(subfaqArticleDTO.getKeywords());
  221. subfaqArticles.add(subfaqArticle);
  222. }
  223. faqArticle.setFaqRelatedArticles(subfaqArticles);*/
  224. return faqArticle;
  225. }
  226. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement