springboot整合queryDSL最新

springboot2.5整合queryDSL5.0最新

主要配置

  1. idea下载JPA Buddy插件

  2. 依赖引入

            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-data-jpa</artifactId>
            </dependency>
    
            <dependency>
                <groupId>com.querydsl</groupId>
                <artifactId>querydsl-jpa</artifactId>
                <version>5.0.0</version>
            </dependency>
    
            <dependency>
                <groupId>com.querydsl</groupId>
                <artifactId>querydsl-apt</artifactId>
                <version>5.0.0</version>
            </dependency>
    
            <dependency>
                <groupId>com.querydsl</groupId>
                <artifactId>querydsl-core</artifactId>
                <version>5.0.0</version>
            </dependency>
    
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
                <plugin>
                    <groupId>com.mysema.maven</groupId>
                    <artifactId>apt-maven-plugin</artifactId>
                    <version>1.1.3</version>
                    <executions>
                        <execution>
                            <goals>
                                <goal>process</goal>
                            </goals>
                            <configuration>
                                <outputDirectory>target/generated-sources/java</outputDirectory>
                                <processor>com.querydsl.apt.jpa.JPAAnnotationProcessor</processor>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
    
  3. 代码配置

    @Configuration
    public class JPAQueryFactoryConfiguration {
    
        @PersistenceContext
        private EntityManager entityManager;
    
        @Bean
        public JPAQueryFactory jpaQueryFactory() {
            return new JPAQueryFactory(entityManager);
        }
    }
    
  4. SQL工具类

    @Component
    public class Dsl {
    
        public static JPAQueryFactory factory;
        @Resource
        private JPAQueryFactory jpaQueryFactory;
    
        @PostConstruct
        private void init() {
            factory = jpaQueryFactory;
        }
    
    }
    
  5. sql调用样例

    @Service
    public class UserInfoServiceImpl implements UserInfoService {
    
    
        QUserInfo qUserInfo = QUserInfo.userInfo;
    
        @Override
        public List<UserInfo> getUserList() {
    
            return Dsl.factory
                    .select(qUserInfo)
                    .from(qUserInfo)
                    .fetch();
        }
    }
    
  6. 代码启动前先点击maven compile在target -> generated-sources -> java下会生成实体类的Q类

posted @ 2021-11-12 10:50  JACK-WEI  阅读(545)  评论(1)    收藏  举报