liuchao
4 years ago
commit
1aac575208
11 changed files with 272 additions and 0 deletions
@ -0,0 +1,34 @@ |
|||
HELP.md |
|||
.gradle |
|||
build/ |
|||
!gradle/wrapper/gradle-wrapper.jar |
|||
!**/src/main/**/build/ |
|||
!**/src/test/**/build/ |
|||
|
|||
### STS ### |
|||
.apt_generated |
|||
.classpath |
|||
.factorypath |
|||
.project |
|||
.settings |
|||
.springBeans |
|||
.sts4-cache |
|||
|
|||
### IntelliJ IDEA ### |
|||
.idea |
|||
*.iws |
|||
*.iml |
|||
*.ipr |
|||
out/ |
|||
!**/src/main/**/out/ |
|||
!**/src/test/**/out/ |
|||
|
|||
### NetBeans ### |
|||
/nbproject/private/ |
|||
/nbbuild/ |
|||
/dist/ |
|||
/nbdist/ |
|||
/.nb-gradle/ |
|||
|
|||
### VS Code ### |
|||
.vscode/ |
@ -0,0 +1,54 @@ |
|||
buildscript { |
|||
ext { |
|||
queryDslVersion = '4.3.1' |
|||
} |
|||
repositories { |
|||
maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'} |
|||
} |
|||
} |
|||
plugins { |
|||
id 'org.springframework.boot' version '2.3.3.RELEASE' |
|||
id 'io.spring.dependency-management' version '1.0.10.RELEASE' |
|||
id 'java' |
|||
} |
|||
|
|||
group = 'com.aiprose' |
|||
version = '0.0.1' |
|||
sourceCompatibility = '1.8' |
|||
|
|||
|
|||
configurations { |
|||
compileOnly { |
|||
extendsFrom annotationProcessor |
|||
} |
|||
} |
|||
repositories { |
|||
maven { url "http://maven.aliyun.com/nexus/content/groups/public/" } |
|||
mavenCentral() |
|||
} |
|||
dependencies { |
|||
implementation 'org.springframework.boot:spring-boot-starter-webflux' |
|||
implementation 'org.springframework.boot:spring-boot-starter-data-jpa' |
|||
developmentOnly 'org.springframework.boot:spring-boot-devtools' |
|||
|
|||
runtimeOnly 'mysql:mysql-connector-java' |
|||
|
|||
// QueryDSL |
|||
implementation("com.querydsl:querydsl-core:${queryDslVersion}") |
|||
implementation("com.querydsl:querydsl-jpa:${queryDslVersion}") |
|||
|
|||
annotationProcessor("com.querydsl:querydsl-apt:${queryDslVersion}:jpa", |
|||
"org.hibernate.javax.persistence:hibernate-jpa-2.1-api:1.0.2.Final", |
|||
"javax.annotation:javax.annotation-api:1.3.2","org.projectlombok:lombok") |
|||
|
|||
|
|||
compileOnly 'org.projectlombok:lombok' |
|||
annotationProcessor 'org.projectlombok:lombok' |
|||
|
|||
testImplementation('org.springframework.boot:spring-boot-starter-test') { |
|||
exclude group: 'org.junit.vintage', module: 'junit-vintage-engine' |
|||
} |
|||
} |
|||
test { |
|||
useJUnitPlatform() |
|||
} |
@ -0,0 +1 @@ |
|||
rootProject.name = 'querydsl' |
@ -0,0 +1,13 @@ |
|||
package com.aiprose.querydsl; |
|||
|
|||
import org.springframework.boot.SpringApplication; |
|||
import org.springframework.boot.autoconfigure.SpringBootApplication; |
|||
|
|||
@SpringBootApplication |
|||
public class QuerydslApplication { |
|||
|
|||
public static void main(String[] args) { |
|||
SpringApplication.run(QuerydslApplication.class, args); |
|||
} |
|||
|
|||
} |
@ -0,0 +1,34 @@ |
|||
package com.aiprose.querydsl.controller; |
|||
|
|||
import com.aiprose.querydsl.entity.User; |
|||
import com.aiprose.querydsl.service.UserService; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.web.bind.annotation.GetMapping; |
|||
import org.springframework.web.bind.annotation.PathVariable; |
|||
import org.springframework.web.bind.annotation.RestController; |
|||
import reactor.core.publisher.Mono; |
|||
|
|||
/** |
|||
* @version 1.0 |
|||
* @Auther: nelson |
|||
* @company 北京中经网软件有限公司 |
|||
* @Date: 2020/9/14 |
|||
*/ |
|||
@RestController |
|||
public class UserController { |
|||
|
|||
@Autowired |
|||
private UserService userService; |
|||
|
|||
@GetMapping("user/{username}") |
|||
public Mono<User> getUser(@PathVariable("username") String username){ |
|||
User user = userService.findByUsername(username); |
|||
return Mono.just(user); |
|||
} |
|||
|
|||
@GetMapping("user/save/{username}") |
|||
public Mono<User> saveUser(@PathVariable("username") String username){ |
|||
User user = userService.save(username); |
|||
return Mono.just(user); |
|||
} |
|||
} |
@ -0,0 +1,26 @@ |
|||
package com.aiprose.querydsl.entity; |
|||
|
|||
import lombok.Data; |
|||
|
|||
import javax.persistence.GeneratedValue; |
|||
import javax.persistence.GenerationType; |
|||
import javax.persistence.Id; |
|||
import javax.persistence.MappedSuperclass; |
|||
import java.io.Serializable; |
|||
|
|||
/** |
|||
* @version 1.0 |
|||
* @Auther: nelson |
|||
* @company 北京中经网软件有限公司 |
|||
* @Date: 2020/9/14 |
|||
*/ |
|||
@Data |
|||
@MappedSuperclass |
|||
public class IDEntity implements Serializable { |
|||
/** |
|||
* 主键 |
|||
*/ |
|||
@Id |
|||
@GeneratedValue(strategy = GenerationType.AUTO) |
|||
protected Long id; |
|||
} |
@ -0,0 +1,20 @@ |
|||
package com.aiprose.querydsl.entity; |
|||
|
|||
import lombok.Data; |
|||
import lombok.Getter; |
|||
|
|||
import javax.persistence.Entity; |
|||
import javax.persistence.Table; |
|||
|
|||
/** |
|||
* @version 1.0 |
|||
* @Auther: nelson |
|||
* @company 北京中经网软件有限公司 |
|||
* @Date: 2020/9/14 |
|||
*/ |
|||
@Data |
|||
@Entity |
|||
@Table(name="tb_user") |
|||
public class User extends IDEntity{ |
|||
private String username; |
|||
} |
@ -0,0 +1,15 @@ |
|||
package com.aiprose.querydsl.repository; |
|||
|
|||
import com.aiprose.querydsl.entity.User; |
|||
import org.springframework.data.jpa.repository.JpaRepository; |
|||
import org.springframework.data.querydsl.QuerydslPredicateExecutor; |
|||
|
|||
/** |
|||
* @version 1.0 |
|||
* @Auther: nelson |
|||
* @company 北京中经网软件有限公司 |
|||
* @Date: 2020/9/14 |
|||
*/ |
|||
public interface UserRepository extends JpaRepository<User, String>, |
|||
QuerydslPredicateExecutor<User>{ |
|||
} |
@ -0,0 +1,48 @@ |
|||
package com.aiprose.querydsl.service; |
|||
|
|||
import com.aiprose.querydsl.entity.QUser; |
|||
import com.aiprose.querydsl.entity.User; |
|||
import com.aiprose.querydsl.repository.UserRepository; |
|||
import com.querydsl.jpa.impl.JPAQueryFactory; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.stereotype.Service; |
|||
|
|||
import javax.annotation.PostConstruct; |
|||
import javax.persistence.EntityManager; |
|||
import javax.persistence.PersistenceContext; |
|||
|
|||
/** |
|||
* @version 1.0 |
|||
* @Auther: nelson |
|||
* @company 北京中经网软件有限公司 |
|||
* @Date: 2020/9/14 |
|||
*/ |
|||
@Service |
|||
public class UserService { |
|||
|
|||
@Autowired |
|||
@PersistenceContext |
|||
protected EntityManager entityManager; |
|||
|
|||
@PostConstruct |
|||
public void init() { |
|||
queryFactory = new JPAQueryFactory(entityManager); |
|||
} |
|||
|
|||
@Autowired |
|||
private UserRepository repository; |
|||
|
|||
protected JPAQueryFactory queryFactory; |
|||
|
|||
public User findByUsername(String username) { |
|||
QUser qUser = QUser.user; |
|||
return queryFactory.select(qUser).from(qUser).where(qUser.username.eq(username)).fetchOne(); |
|||
} |
|||
|
|||
public User save(String username) { |
|||
User user = new User(); |
|||
user.setUsername(username); |
|||
repository.saveAndFlush(user); |
|||
return user; |
|||
} |
|||
} |
@ -0,0 +1,14 @@ |
|||
server: |
|||
port: 8081 |
|||
spring: |
|||
jpa: |
|||
hibernate: |
|||
ddl-auto: update |
|||
show-sql: true |
|||
generate-ddl: true |
|||
database-platform: org.hibernate.dialect.MySQL8Dialect |
|||
datasource: |
|||
username: root |
|||
password: trgis |
|||
driver-class-name: com.mysql.cj.jdbc.Driver |
|||
url: jdbc:mysql://47.98.109.5:3309/querydsl?characterEncoding=utf8&useSSL=false |
@ -0,0 +1,13 @@ |
|||
package com.aiprose.querydsl; |
|||
|
|||
import org.junit.jupiter.api.Test; |
|||
import org.springframework.boot.test.context.SpringBootTest; |
|||
|
|||
@SpringBootTest |
|||
class QuerydslApplicationTests { |
|||
|
|||
@Test |
|||
void contextLoads() { |
|||
} |
|||
|
|||
} |
Loading…
Reference in new issue