diff --git a/pom.xml b/pom.xml
index 2c23e76..b55da0b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -47,6 +47,11 @@
spring-boot-starter-test
test
+
+ org.projectlombok
+ lombok
+ true
+
diff --git a/src/main/java/com/example/postgresdemo/PostgresDemoApplication.java b/src/main/java/com/example/postgresdemo/PostgresDemoApplication.java
index 29cf2e1..055e80d 100644
--- a/src/main/java/com/example/postgresdemo/PostgresDemoApplication.java
+++ b/src/main/java/com/example/postgresdemo/PostgresDemoApplication.java
@@ -2,10 +2,16 @@
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.autoconfigure.domain.EntityScan;
+import org.springframework.context.annotation.ComponentScan;
import org.springframework.data.jpa.repository.config.EnableJpaAuditing;
+import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
@SpringBootApplication
@EnableJpaAuditing
+@EntityScan(basePackages = "com.example.postgresdemo")
+@ComponentScan(basePackages = "com.example.postgresdemo")
+@EnableJpaRepositories(basePackages = "com.example.postgresdemo")
public class PostgresDemoApplication {
public static void main(String[] args) {
SpringApplication.run(PostgresDemoApplication.class, args);
diff --git a/src/main/java/com/example/postgresdemo/controller/AnswerController.java b/src/main/java/com/example/postgresdemo/controller/AnswerController.java
index 7cfaa47..c3cdb7b 100644
--- a/src/main/java/com/example/postgresdemo/controller/AnswerController.java
+++ b/src/main/java/com/example/postgresdemo/controller/AnswerController.java
@@ -20,12 +20,12 @@ public class AnswerController {
private QuestionRepository questionRepository;
@GetMapping("/questions/{questionId}/answers")
- public List getAnswersByQuestionId(@PathVariable Long questionId) {
+ public List getAnswersByQuestionId(@PathVariable(value = "questionId") Long questionId) {
return answerRepository.findByQuestionId(questionId);
}
@PostMapping("/questions/{questionId}/answers")
- public Answer addAnswer(@PathVariable Long questionId,
+ public Answer addAnswer(@PathVariable(value = "questionId") Long questionId,
@Valid @RequestBody Answer answer) {
return questionRepository.findById(questionId)
.map(question -> {
diff --git a/src/main/java/com/example/postgresdemo/controller/QuestionController.java b/src/main/java/com/example/postgresdemo/controller/QuestionController.java
index c231819..74ad706 100644
--- a/src/main/java/com/example/postgresdemo/controller/QuestionController.java
+++ b/src/main/java/com/example/postgresdemo/controller/QuestionController.java
@@ -11,23 +11,24 @@
import javax.validation.Valid;
@RestController
+@RequestMapping("/questions")
public class QuestionController {
@Autowired
private QuestionRepository questionRepository;
- @GetMapping("/questions")
+ @GetMapping("/list")
public Page getQuestions(Pageable pageable) {
return questionRepository.findAll(pageable);
}
- @PostMapping("/questions")
+ @PostMapping("/create")
public Question createQuestion(@Valid @RequestBody Question question) {
return questionRepository.save(question);
}
- @PutMapping("/questions/{questionId}")
+ @PutMapping("/{questionId}")
public Question updateQuestion(@PathVariable Long questionId,
@Valid @RequestBody Question questionRequest) {
return questionRepository.findById(questionId)
@@ -39,10 +40,10 @@ public Question updateQuestion(@PathVariable Long questionId,
}
- @DeleteMapping("/questions/{questionId}")
+ @DeleteMapping("/{questionId}")
public ResponseEntity> deleteQuestion(@PathVariable Long questionId) {
return questionRepository.findById(questionId)
- .map(question -> {
+ .map(question -> {
questionRepository.delete(question);
return ResponseEntity.ok().build();
}).orElseThrow(() -> new ResourceNotFoundException("Question not found with id " + questionId));
diff --git a/src/main/java/com/example/postgresdemo/model/Answer.java b/src/main/java/com/example/postgresdemo/model/Answer.java
index b5e48d0..e07f11a 100644
--- a/src/main/java/com/example/postgresdemo/model/Answer.java
+++ b/src/main/java/com/example/postgresdemo/model/Answer.java
@@ -1,6 +1,12 @@
package com.example.postgresdemo.model;
import com.fasterxml.jackson.annotation.JsonIgnore;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
import org.hibernate.annotations.OnDelete;
import org.hibernate.annotations.OnDeleteAction;
@@ -8,6 +14,10 @@
@Entity
@Table(name = "answers")
+@Getter
+@Setter
+@AllArgsConstructor
+@NoArgsConstructor
public class Answer extends AuditModel {
@Id
@GeneratedValue(generator = "answer_generator")
@@ -27,27 +37,5 @@ public class Answer extends AuditModel {
@JsonIgnore
private Question question;
- public Long getId() {
- return id;
- }
-
- public void setId(Long id) {
- this.id = id;
- }
-
- public String getText() {
- return text;
- }
-
- public void setText(String text) {
- this.text = text;
- }
-
- public Question getQuestion() {
- return question;
- }
-
- public void setQuestion(Question question) {
- this.question = question;
- }
+
}
diff --git a/src/main/java/com/example/postgresdemo/model/AuditModel.java b/src/main/java/com/example/postgresdemo/model/AuditModel.java
index a61a3b8..4b7434c 100644
--- a/src/main/java/com/example/postgresdemo/model/AuditModel.java
+++ b/src/main/java/com/example/postgresdemo/model/AuditModel.java
@@ -1,13 +1,18 @@
package com.example.postgresdemo.model;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+
+import lombok.Getter;
+import lombok.Setter;
+
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.LastModifiedDate;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
import javax.persistence.*;
import java.io.Serializable;
import java.util.Date;
-
+@Getter
+@Setter
@MappedSuperclass
@EntityListeners(AuditingEntityListener.class)
@JsonIgnoreProperties(
@@ -25,19 +30,5 @@ public abstract class AuditModel implements Serializable {
@LastModifiedDate
private Date updatedAt;
- public Date getCreatedAt() {
- return createdAt;
- }
-
- public void setCreatedAt(Date createdAt) {
- this.createdAt = createdAt;
- }
-
- public Date getUpdatedAt() {
- return updatedAt;
- }
-
- public void setUpdatedAt(Date updatedAt) {
- this.updatedAt = updatedAt;
- }
+
}
\ No newline at end of file
diff --git a/src/main/java/com/example/postgresdemo/model/Question.java b/src/main/java/com/example/postgresdemo/model/Question.java
index d16a459..e43fad4 100644
--- a/src/main/java/com/example/postgresdemo/model/Question.java
+++ b/src/main/java/com/example/postgresdemo/model/Question.java
@@ -4,8 +4,17 @@
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
@Entity
@Table(name = "questions")
+@Getter
+@Setter
+@AllArgsConstructor
+@NoArgsConstructor
public class Question extends AuditModel {
@Id
@GeneratedValue(generator = "question_generator")
@@ -23,27 +32,4 @@ public class Question extends AuditModel {
@Column(columnDefinition = "text")
private String description;
- public Long getId() {
- return id;
- }
-
- public void setId(Long id) {
- this.id = id;
- }
-
- public String getTitle() {
- return title;
- }
-
- public void setTitle(String title) {
- this.title = title;
- }
-
- public String getDescription() {
- return description;
- }
-
- public void setDescription(String description) {
- this.description = description;
- }
}
diff --git a/src/main/java/com/example/postgresdemo/repository/AnswerRepository.java b/src/main/java/com/example/postgresdemo/repository/AnswerRepository.java
index 761f91f..16ed483 100644
--- a/src/main/java/com/example/postgresdemo/repository/AnswerRepository.java
+++ b/src/main/java/com/example/postgresdemo/repository/AnswerRepository.java
@@ -7,5 +7,6 @@
@Repository
public interface AnswerRepository extends JpaRepository {
- List findByQuestionId(Long questionId);
+
+ List findByQuestionId(Long questionId);
}
diff --git a/src/main/java/com/example/postgresdemo/repository/QuestionRepository.java b/src/main/java/com/example/postgresdemo/repository/QuestionRepository.java
index 290373d..5a10301 100644
--- a/src/main/java/com/example/postgresdemo/repository/QuestionRepository.java
+++ b/src/main/java/com/example/postgresdemo/repository/QuestionRepository.java
@@ -6,4 +6,5 @@
@Repository
public interface QuestionRepository extends JpaRepository {
+
}
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index 35b376a..901dd9e 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -1,10 +1,21 @@
## Spring DATASOURCE (DataSourceAutoConfiguration & DataSourceProperties)
-spring.datasource.url=jdbc:postgresql://localhost:5432/postgres_demo
-spring.datasource.username= postgres
-spring.datasource.password=
+spring.datasource.url=jdbc:postgresql://localhost:5432/postgres
+
+spring.datasource.password=1
# The SQL dialect makes Hibernate generate better SQL for the chosen database
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect
# Hibernate ddl auto (create, create-drop, validate, update)
-spring.jpa.hibernate.ddl-auto = update
+spring.jpa.hibernate.ddl-auto = create
+
+
+spring.application.name=postgres-demo
+
+
+spring.datasource.username=postgres
+spring.jpa.properties.hibernate.default_schema=posgresdemo
+
+
+spring.jpa.show-sql=true
+spring.jpa.properties.hibernate.format_sql=true
\ No newline at end of file