springboot分模快开发怎么让querydsl分模快生成target QEntity,具体怎么写
时间: 2024-05-08 17:18:19 浏览: 17
对于使用Spring Boot分模块开发的情况,可以考虑使用Querydsl来支持JPA查询,并利用其QEntity生成查询实体。
在pom文件中添加Querydsl和相关依赖:
```xml
<dependency>
<groupId>com.querydsl</groupId>
<artifactId>querydsl-apt</artifactId>
<version>${querydsl.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.querydsl</groupId>
<artifactId>querydsl-jpa</artifactId>
<version>${querydsl.version}</version>
</dependency>
<plugin>
<groupId>com.mysema.maven</groupId>
<artifactId>apt-maven-plugin</artifactId>
<version>${apt.plugin.version}</version>
<executions>
<execution>
<id>querydsl</id>
<phase>generate-sources</phase>
<goals>
<goal>process</goal>
</goals>
<configuration>
<outputDirectory>target/generated-sources/java</outputDirectory>
<processor>com.querydsl.apt.jpa.JPAAnnotationProcessor</processor>
</configuration>
</execution>
</executions>
</plugin>
```
在DTO和实体类中添加注解:
```java
@Entity
public class User {
...
@OneToMany(mappedBy = "user", fetch = FetchType.LAZY)
private List<Book> books;
public List<Book> getBooks() {
return books;
}
}
@Entity
public class Book {
...
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "user_id")
private User user;
public User getUser() {
return user;
}
}
@Dto
public class UserDto {
...
private List<BookDto> books;
public List<Book> getBooks() {
return books;
}
}
@Dto
public class BookDto {
...
private UserDto user;
public UserDto getUser() {
return user;
}
}
```
使用queryDSL查询:
```java
QUser qUser = QUser.user;
QBook qBook = QBook.book;
JPQLQuery<UserDto> query = to.createQuery()
.select(Projections.constructor(UserDto.class, qUser.id, qUser.name))
.from(qUser)
.leftJoin(qUser.books, qBook)
.where(qBook.title.eq("book title"));
List<UserDto> userDtos = query.fetch();
```
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)