From 5589258324faa6d9e1ec7e5226e98dc2e1a18adc Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期一, 05 二月 2024 09:28:34 +0800
Subject: [PATCH] 集成graphql和jpa
---
dujy-admin/pom.xml | 11 +++
dujy-modules/dujy-demo/pom.xml | 19 ++++++
dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/Student.java | 22 +++++++
dujy-admin/src/main/resources/application-dev.yml | 27 +++++++++
dujy-admin/src/main/resources/application-prod.yml | 28 +++++++++
dujy-common/dujy-common-redis/src/main/java/org/dromara/common/redis/handler/KeyPrefixHandler.java | 1
dujy-modules/dujy-demo/src/main/java/org/dromara/demo/controller/TestJPAController.java | 25 ++++++++
dujy-modules/dujy-demo/src/main/resources/graphql/schema.graphql | 5 +
pom.xml | 1
dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/IStudentRepository.java | 10 +++
10 files changed, 146 insertions(+), 3 deletions(-)
diff --git a/dujy-admin/pom.xml b/dujy-admin/pom.xml
index 2da1d5a..714fe13 100644
--- a/dujy-admin/pom.xml
+++ b/dujy-admin/pom.xml
@@ -70,7 +70,16 @@
<groupId>org.dujy</groupId>
<artifactId>dujy-demo</artifactId>
</dependency>
-
+ <!-- jpa -->
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-data-jpa</artifactId>
+ </dependency>
+ <!--graphql -->
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-graphql</artifactId>
+ </dependency>
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-client</artifactId>
diff --git a/dujy-admin/src/main/resources/application-dev.yml b/dujy-admin/src/main/resources/application-dev.yml
index ea6d08d..9eda0cc 100644
--- a/dujy-admin/src/main/resources/application-dev.yml
+++ b/dujy-admin/src/main/resources/application-dev.yml
@@ -26,6 +26,33 @@
--- # 鏁版嵁婧愰厤缃�
spring:
+ jpa:
+ show-sql: true
+ generate-ddl: true
+ open-in-view: false
+ hibernate:
+ ddl-auto: validate
+ properties:
+ hibernate:
+ format_sql: true
+
+ graphql:
+ path: /graphql
+ graphiql:
+ enabled: true
+ path: /graphiql
+ cors:
+ allow-credentials: true
+ allowed-headers: '*'
+ allowed-methods: '*'
+ schema:
+ locations:
+ - classpath*:graphql/
+ file-extensions:
+ - .graphql
+ - .gqls
+ printer:
+ enabled: true
datasource:
type: com.zaxxer.hikari.HikariDataSource
# 鍔ㄦ�佹暟鎹簮鏂囨。 https://www.kancloud.cn/tracy5546/dynamic-datasource/content
diff --git a/dujy-admin/src/main/resources/application-prod.yml b/dujy-admin/src/main/resources/application-prod.yml
index 148b50e..6be40ec 100644
--- a/dujy-admin/src/main/resources/application-prod.yml
+++ b/dujy-admin/src/main/resources/application-prod.yml
@@ -29,6 +29,34 @@
--- # 鏁版嵁婧愰厤缃�
spring:
+ jpa:
+ show-sql: true
+ generate-ddl: true
+ open-in-view: false
+ hibernate:
+ ddl-auto: validate
+ properties:
+ hibernate:
+ format_sql: true
+
+ graphql:
+ path: /graphql
+ graphiql:
+ enabled: true
+ path: /graphiql
+ cors:
+ allow-credentials: true
+ allowed-headers: '*'
+ allowed-methods: '*'
+ schema:
+ locations:
+ - classpath*:graphql/**/
+ file-extensions:
+ - .graphqls
+ - .gqls
+ printer:
+ enabled: true
+
datasource:
type: com.zaxxer.hikari.HikariDataSource
# 鍔ㄦ�佹暟鎹簮鏂囨。 https://www.kancloud.cn/tracy5546/dynamic-datasource/content
diff --git a/dujy-common/dujy-common-redis/src/main/java/org/dromara/common/redis/handler/KeyPrefixHandler.java b/dujy-common/dujy-common-redis/src/main/java/org/dromara/common/redis/handler/KeyPrefixHandler.java
index 3bf3e34..de921fb 100644
--- a/dujy-common/dujy-common-redis/src/main/java/org/dromara/common/redis/handler/KeyPrefixHandler.java
+++ b/dujy-common/dujy-common-redis/src/main/java/org/dromara/common/redis/handler/KeyPrefixHandler.java
@@ -1,5 +1,6 @@
package org.dromara.common.redis.handler;
+
import org.dromara.common.core.utils.StringUtils;
import org.redisson.api.NameMapper;
diff --git a/dujy-modules/dujy-demo/pom.xml b/dujy-modules/dujy-demo/pom.xml
index 72f9d18..5d233dd 100644
--- a/dujy-modules/dujy-demo/pom.xml
+++ b/dujy-modules/dujy-demo/pom.xml
@@ -22,7 +22,16 @@
<groupId>org.dujy</groupId>
<artifactId>dujy-common-core</artifactId>
</dependency>
-
+ <!-- jpa -->
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-data-jpa</artifactId>
+ </dependency>
+ <!--graphql -->
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-graphql</artifactId>
+ </dependency>
<dependency>
<groupId>org.dujy</groupId>
<artifactId>dujy-common-doc</artifactId>
@@ -102,6 +111,14 @@
<groupId>org.dujy</groupId>
<artifactId>dujy-common-websocket</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.springframework.graphql</groupId>
+ <artifactId>spring-graphql</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework.graphql</groupId>
+ <artifactId>spring-graphql</artifactId>
+ </dependency>
</dependencies>
diff --git a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/controller/TestJPAController.java b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/controller/TestJPAController.java
new file mode 100644
index 0000000..d671395
--- /dev/null
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/controller/TestJPAController.java
@@ -0,0 +1,25 @@
+package org.dromara.demo.controller;
+
+import org.dromara.demo.domain.Student;
+import org.dromara.demo.service.IStudentRepository;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.graphql.data.method.annotation.Argument;
+import org.springframework.graphql.data.method.annotation.QueryMapping;
+import org.springframework.stereotype.Controller;
+
+@Controller
+public class TestJPAController {
+ @Autowired
+ private IStudentRepository studentRepository;
+
+
+ @QueryMapping
+ public void addStudent(@Argument Student student){
+ studentRepository.save(student);
+ }
+ @QueryMapping
+ public Student getStudent(@Argument Long id){
+ return studentRepository.findById(id).orElse(null);
+ }
+
+}
diff --git a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/Student.java b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/Student.java
new file mode 100644
index 0000000..2383842
--- /dev/null
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/Student.java
@@ -0,0 +1,22 @@
+package org.dromara.demo.domain;
+
+import jakarta.persistence.*;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Entity
+@Table(name = "t_student_demo")
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class Student {
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY) // 涓婚敭鑷闀�
+ @Column(name = "id")
+ private Long id;
+ @Column(name = "name")
+ private String name;
+ @Column(name = "age")
+ private Integer age;
+}
diff --git a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/IStudentRepository.java b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/IStudentRepository.java
new file mode 100644
index 0000000..de2713a
--- /dev/null
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/IStudentRepository.java
@@ -0,0 +1,10 @@
+package org.dromara.demo.service;
+
+import org.dromara.demo.domain.Student;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.repository.CrudRepository;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface IStudentRepository extends CrudRepository<Student,Long> {
+}
diff --git a/dujy-modules/dujy-demo/src/main/resources/graphql/schema.graphql b/dujy-modules/dujy-demo/src/main/resources/graphql/schema.graphql
new file mode 100644
index 0000000..de251cd
--- /dev/null
+++ b/dujy-modules/dujy-demo/src/main/resources/graphql/schema.graphql
@@ -0,0 +1,5 @@
+
+
+type Query{}
+
+type Mutation{}
diff --git a/pom.xml b/pom.xml
index 439936c..1709403 100644
--- a/pom.xml
+++ b/pom.xml
@@ -91,7 +91,6 @@
<!-- 渚濊禆澹版槑 -->
<dependencyManagement>
<dependencies>
-
<!-- SpringBoot鐨勪緷璧栭厤缃�-->
<dependency>
<groupId>org.springframework.boot</groupId>
--
Gitblit v1.8.0