fuliqi
2024-02-05 5589258324faa6d9e1ec7e5226e98dc2e1a18adc
集成graphql和jpa
6个文件已修改
4个文件已添加
149 ■■■■■ 已修改文件
dujy-admin/pom.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
dujy-admin/src/main/resources/application-dev.yml 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
dujy-admin/src/main/resources/application-prod.yml 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
dujy-common/dujy-common-redis/src/main/java/org/dromara/common/redis/handler/KeyPrefixHandler.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
dujy-modules/dujy-demo/pom.xml 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
dujy-modules/dujy-demo/src/main/java/org/dromara/demo/controller/TestJPAController.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/Student.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/IStudentRepository.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
dujy-modules/dujy-demo/src/main/resources/graphql/schema.graphql 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pom.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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>
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
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
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;
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>
dujy-modules/dujy-demo/src/main/java/org/dromara/demo/controller/TestJPAController.java
New file
@@ -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);
    }
}
dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/Student.java
New file
@@ -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;
}
dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/IStudentRepository.java
New file
@@ -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> {
}
dujy-modules/dujy-demo/src/main/resources/graphql/schema.graphql
New file
@@ -0,0 +1,5 @@
type Query{}
type Mutation{}
pom.xml
@@ -91,7 +91,6 @@
    <!-- 依赖声明 -->
    <dependencyManagement>
        <dependencies>
            <!-- SpringBoot的依赖配置-->
            <dependency>
                <groupId>org.springframework.boot</groupId>