feat: 增加fluent sql测试用例
This commit is contained in:
parent
3bd0119fbf
commit
764d25f15c
@ -33,11 +33,5 @@
|
|||||||
<groupId>dev.flyfish.framework</groupId>
|
<groupId>dev.flyfish.framework</groupId>
|
||||||
<artifactId>flyfish-data-common</artifactId>
|
<artifactId>flyfish-data-common</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
|
||||||
<groupId>group.flyfish.framework</groupId>
|
|
||||||
<artifactId>fluent-sql-core</artifactId>
|
|
||||||
<version>0.0.5</version>
|
|
||||||
<optional>true</optional>
|
|
||||||
</dependency>
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
</project>
|
</project>
|
||||||
|
@ -6,6 +6,8 @@ import dev.flyfish.framework.r2dbc.domain.TestQO;
|
|||||||
import dev.flyfish.framework.r2dbc.repository.TestAssoRepository;
|
import dev.flyfish.framework.r2dbc.repository.TestAssoRepository;
|
||||||
import dev.flyfish.framework.r2dbc.repository.TestRepository;
|
import dev.flyfish.framework.r2dbc.repository.TestRepository;
|
||||||
import dev.flyfish.framework.utils.JacksonUtil;
|
import dev.flyfish.framework.utils.JacksonUtil;
|
||||||
|
import group.flyfish.fluent.chain.SQL;
|
||||||
|
import group.flyfish.fluent.operations.R2dbcFluentSQLOperations;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
@ -14,6 +16,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||||
import org.springframework.boot.test.context.SpringBootTest;
|
import org.springframework.boot.test.context.SpringBootTest;
|
||||||
import org.springframework.context.annotation.Import;
|
import org.springframework.context.annotation.Import;
|
||||||
|
import org.springframework.r2dbc.core.DatabaseClient;
|
||||||
import org.springframework.test.context.junit.jupiter.SpringExtension;
|
import org.springframework.test.context.junit.jupiter.SpringExtension;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -29,6 +32,8 @@ public class R2DbcRepositoryTest {
|
|||||||
private TestRepository testRepository;
|
private TestRepository testRepository;
|
||||||
@Autowired
|
@Autowired
|
||||||
private TestAssoRepository testAssoRepository;
|
private TestAssoRepository testAssoRepository;
|
||||||
|
@Resource
|
||||||
|
private DatabaseClient databaseClient;
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void test() {
|
public void test() {
|
||||||
@ -44,14 +49,32 @@ public class R2DbcRepositoryTest {
|
|||||||
test.setOtherId("1");
|
test.setOtherId("1");
|
||||||
|
|
||||||
// 打印插入结果
|
// 打印插入结果
|
||||||
log.info("插入结果:{}", JacksonUtil.toPrettyJson(testRepository.insert(test).block()));
|
testRepository.insert(test)
|
||||||
|
.doOnNext(obj -> this.log("插入结果:{}", obj))
|
||||||
|
.block();
|
||||||
// 查询生成
|
// 查询生成
|
||||||
log.info("生成查询:{}", JacksonUtil.toPrettyJson(testRepository.findByNameContaining("名").block()));
|
testRepository.findByNameContaining("名")
|
||||||
List<TestDO> all = testRepository.findAll(qo).collectList().block();
|
.doOnNext(obj -> this.log("生成查询:{}", obj))
|
||||||
log.info("qo查询:{}", JacksonUtil.toPrettyJson(all));
|
.block();
|
||||||
|
List<TestDO> all = testRepository.findAll(qo).collectList()
|
||||||
|
.doOnNext(obj -> this.log("qo查询:{}", obj))
|
||||||
|
.block();
|
||||||
// 修改值并保存测试
|
// 修改值并保存测试
|
||||||
all.get(0).getAsso().setName("修改后的值");
|
all.get(0).getAsso().setName("修改后的值");
|
||||||
log.info("批量保存:{}", JacksonUtil.toPrettyJson(testRepository.saveAll(all).collectList().block()));
|
testRepository.saveAll(all).collectList()
|
||||||
log.info("id查询:{}", JacksonUtil.toPrettyJson(testAssoRepository.findById("1").block()));
|
.doOnNext(obj -> this.log("批量保存:{}", obj))
|
||||||
|
.block();
|
||||||
|
testAssoRepository.findById("1")
|
||||||
|
.doOnNext(obj -> this.log("id查询:{}", obj))
|
||||||
|
.block();
|
||||||
|
// 测试fluent sql
|
||||||
|
SQL.bind(new R2dbcFluentSQLOperations(databaseClient));
|
||||||
|
testRepository.getDTOById(100L)
|
||||||
|
.doOnNext(obj -> this.log("测试fluent:{}", obj))
|
||||||
|
.block();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void log(String msg, Object bean) {
|
||||||
|
log.info(msg, JacksonUtil.toPrettyJson(bean));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,25 @@
|
|||||||
|
package dev.flyfish.framework.r2dbc.domain;
|
||||||
|
|
||||||
|
import dev.flyfish.framework.r2dbc.domain.reference.TestAsso;
|
||||||
|
import dev.flyfish.framework.r2dbc.domain.reference.TestChild;
|
||||||
|
import dev.flyfish.framework.r2dbc.domain.reference.TestOther;
|
||||||
|
import dev.flyfish.framework.relational.mapping.Association;
|
||||||
|
import lombok.Data;
|
||||||
|
import org.springframework.data.annotation.Reference;
|
||||||
|
import org.springframework.data.relational.core.mapping.Column;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class TestDTO {
|
||||||
|
|
||||||
|
private String otherId;
|
||||||
|
|
||||||
|
private TestAsso asso;
|
||||||
|
|
||||||
|
private TestOther other;
|
||||||
|
|
||||||
|
private List<TestOther> others;
|
||||||
|
|
||||||
|
private List<TestChild> children;
|
||||||
|
}
|
@ -1,13 +1,27 @@
|
|||||||
package dev.flyfish.framework.r2dbc.repository;
|
package dev.flyfish.framework.r2dbc.repository;
|
||||||
|
|
||||||
import dev.flyfish.framework.r2dbc.domain.TestDO;
|
import dev.flyfish.framework.r2dbc.domain.TestDO;
|
||||||
|
import dev.flyfish.framework.r2dbc.domain.TestDTO;
|
||||||
|
import dev.flyfish.framework.r2dbc.domain.reference.TestChild;
|
||||||
import dev.flyfish.framework.repository.DefaultReactiveRepository;
|
import dev.flyfish.framework.repository.DefaultReactiveRepository;
|
||||||
import reactor.core.publisher.Mono;
|
import reactor.core.publisher.Mono;
|
||||||
|
|
||||||
|
import static group.flyfish.fluent.chain.SQL.select;
|
||||||
|
import static group.flyfish.fluent.query.Query.where;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 测试仓库
|
* 测试仓库
|
||||||
*/
|
*/
|
||||||
public interface TestRepository extends DefaultReactiveRepository<TestDO> {
|
public interface TestRepository extends DefaultReactiveRepository<TestDO> {
|
||||||
|
|
||||||
Mono<TestDO> findByNameContaining(String like);
|
Mono<TestDO> findByNameContaining(String like);
|
||||||
|
|
||||||
|
default Mono<TestDTO> getDTOById(Long id) {
|
||||||
|
return select().from(TestDO.class)
|
||||||
|
.leftJoin(TestChild.class).on(where(TestDO::getId).eq(TestChild::getParentId))
|
||||||
|
.matching(where(TestDO::getId).eq(id))
|
||||||
|
.as(TestDTO.class)
|
||||||
|
.reactive()
|
||||||
|
.one();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
12
pom.xml
12
pom.xml
@ -28,6 +28,7 @@
|
|||||||
<r2dbc-mysql.version>1.1.3</r2dbc-mysql.version>
|
<r2dbc-mysql.version>1.1.3</r2dbc-mysql.version>
|
||||||
<flatten-maven-plugin.version>1.5.0</flatten-maven-plugin.version>
|
<flatten-maven-plugin.version>1.5.0</flatten-maven-plugin.version>
|
||||||
<captcha.version>1.3.0</captcha.version>
|
<captcha.version>1.3.0</captcha.version>
|
||||||
|
<fluent-sql.version>1.0.0</fluent-sql.version>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
<developers>
|
<developers>
|
||||||
@ -96,6 +97,11 @@
|
|||||||
<artifactId>spring-boot-starter-test</artifactId>
|
<artifactId>spring-boot-starter-test</artifactId>
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>group.flyfish.framework</groupId>
|
||||||
|
<artifactId>fluent-sql-spring-boot-starter</artifactId>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
<dependencyManagement>
|
<dependencyManagement>
|
||||||
@ -146,6 +152,12 @@
|
|||||||
<artifactId>spring-boot-starter-captcha</artifactId>
|
<artifactId>spring-boot-starter-captcha</artifactId>
|
||||||
<version>${captcha.version}</version>
|
<version>${captcha.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>group.flyfish.framework</groupId>
|
||||||
|
<artifactId>fluent-sql-spring-boot-starter</artifactId>
|
||||||
|
<version>${fluent-sql.version}</version>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
</dependencyManagement>
|
</dependencyManagement>
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user