From 73e0c0df14b051beb45ac2faeeff7d4a18cac6d8 Mon Sep 17 00:00:00 2001 From: Sambo Chea Date: Thu, 11 Jun 2020 19:13:29 +0700 Subject: [PATCH] Add Repository, Controller (User) --- .../com/cubetiqs/demo/DemoApplication.java | 3 ++ .../com/cubetiqs/demo/domain/PostEntity.java | 4 ++- .../demo/repository/CommentRepository.java | 10 ++++++ .../demo/repository/PostRepository.java | 10 ++++++ .../demo/repository/UserRepository.java | 12 +++++++ .../cubetiqs/demo/rest/UserController.java | 33 +++++++++++++++++++ 6 files changed, 71 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/cubetiqs/demo/repository/CommentRepository.java create mode 100644 src/main/java/com/cubetiqs/demo/repository/PostRepository.java create mode 100644 src/main/java/com/cubetiqs/demo/repository/UserRepository.java create mode 100644 src/main/java/com/cubetiqs/demo/rest/UserController.java diff --git a/src/main/java/com/cubetiqs/demo/DemoApplication.java b/src/main/java/com/cubetiqs/demo/DemoApplication.java index 71a3584..a2e9757 100644 --- a/src/main/java/com/cubetiqs/demo/DemoApplication.java +++ b/src/main/java/com/cubetiqs/demo/DemoApplication.java @@ -1,10 +1,13 @@ package com.cubetiqs.demo; import com.cubetiqs.demo.domain.UserEntity; +import com.cubetiqs.demo.rest.UserController; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import java.io.File; + @SpringBootApplication public class DemoApplication implements CommandLineRunner { diff --git a/src/main/java/com/cubetiqs/demo/domain/PostEntity.java b/src/main/java/com/cubetiqs/demo/domain/PostEntity.java index 9a96c20..282d617 100644 --- a/src/main/java/com/cubetiqs/demo/domain/PostEntity.java +++ b/src/main/java/com/cubetiqs/demo/domain/PostEntity.java @@ -7,7 +7,6 @@ import lombok.NoArgsConstructor; import javax.persistence.*; import java.util.Collection; -import java.util.List; @Entity @Table(name = "posts") @@ -18,8 +17,10 @@ import java.util.List; public class PostEntity extends BaseEntity { @Column private String title; + @Column(columnDefinition = "TEXT") private String contents; + @ManyToOne(fetch = FetchType.EAGER, cascade = {CascadeType.REFRESH, CascadeType.DETACH}) @JoinColumn(name = "user_id") private UserEntity user; @@ -27,3 +28,4 @@ public class PostEntity extends BaseEntity { @OneToMany(mappedBy = "post", fetch = FetchType.EAGER, cascade = {CascadeType.ALL}, orphanRemoval = true) private Collection comments; } + diff --git a/src/main/java/com/cubetiqs/demo/repository/CommentRepository.java b/src/main/java/com/cubetiqs/demo/repository/CommentRepository.java new file mode 100644 index 0000000..270f8bc --- /dev/null +++ b/src/main/java/com/cubetiqs/demo/repository/CommentRepository.java @@ -0,0 +1,10 @@ +package com.cubetiqs.demo.repository; + +import com.cubetiqs.demo.domain.CommentEntity; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface CommentRepository extends JpaRepository { + +} diff --git a/src/main/java/com/cubetiqs/demo/repository/PostRepository.java b/src/main/java/com/cubetiqs/demo/repository/PostRepository.java new file mode 100644 index 0000000..2b4683f --- /dev/null +++ b/src/main/java/com/cubetiqs/demo/repository/PostRepository.java @@ -0,0 +1,10 @@ +package com.cubetiqs.demo.repository; + +import com.cubetiqs.demo.domain.PostEntity; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface PostRepository extends JpaRepository { + +} diff --git a/src/main/java/com/cubetiqs/demo/repository/UserRepository.java b/src/main/java/com/cubetiqs/demo/repository/UserRepository.java new file mode 100644 index 0000000..8e8d70d --- /dev/null +++ b/src/main/java/com/cubetiqs/demo/repository/UserRepository.java @@ -0,0 +1,12 @@ +package com.cubetiqs.demo.repository; + +import com.cubetiqs.demo.domain.UserEntity; +import org.springframework.data.domain.Page; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; +import org.springframework.stereotype.Repository; + +@Repository +public interface UserRepository extends JpaRepository { + +} diff --git a/src/main/java/com/cubetiqs/demo/rest/UserController.java b/src/main/java/com/cubetiqs/demo/rest/UserController.java new file mode 100644 index 0000000..f05b744 --- /dev/null +++ b/src/main/java/com/cubetiqs/demo/rest/UserController.java @@ -0,0 +1,33 @@ +package com.cubetiqs.demo.rest; + +import com.cubetiqs.demo.domain.UserEntity; +import com.cubetiqs.demo.repository.UserRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@RestController +@RequestMapping(path = {"/users"}) +public class UserController { + private final UserRepository userRepository; + + @Autowired + public UserController(UserRepository userRepository) { + this.userRepository = userRepository; + } + + @GetMapping + public Page getAllUsers(Pageable pageable) { + return userRepository.findAll(pageable); + } + + @PostMapping + public UserEntity createUser( + @RequestBody UserEntity user + ) { + return userRepository.save(user); + } +}