diff --git a/mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/java/com/mybatisflex/test/model/FieldMapping.java b/mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/java/com/mybatisflex/test/model/FieldMapping.java new file mode 100644 index 00000000..fc885479 --- /dev/null +++ b/mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/java/com/mybatisflex/test/model/FieldMapping.java @@ -0,0 +1,66 @@ +package com.mybatisflex.test.model; + + +import com.mybatisflex.annotation.Column; +import com.mybatisflex.annotation.Id; +import com.mybatisflex.annotation.KeyType; +import com.mybatisflex.annotation.Table; +import com.mybatisflex.core.activerecord.Model; +import com.mybatisflex.core.keygen.KeyGenerators; + +import java.util.Date; +import java.util.Objects; + + +@Table("field_mapping") +public class FieldMapping extends Model { + @Id(keyType = KeyType.Generator,value = KeyGenerators.snowFlakeId) + private String id; + @Column(ignore = true) + private Date innerDate; + + public String getId() { + return id; + } + + public static FieldMapping create() { + return new FieldMapping(); + } + + public FieldMapping setId(String id) { + this.id = id; + return this; + } + + public Date getInnerDate() { + return innerDate; + } + + public FieldMapping setInnerDate(Date innerDate) { + this.innerDate = innerDate; + return this; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + FieldMapping that = (FieldMapping) o; + return Objects.equals(id, that.id) && Objects.equals(innerDate, that.innerDate); + } + + @Override + public int hashCode() { + return Objects.hash(id, innerDate); + } + + @Override + public String toString() { + return "FieldMapping{" + + "id='" + id + '\'' + + ", innerDate=" + innerDate + + '}'; + } + +} + diff --git a/mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/java/com/mybatisflex/test/model/FieldMappingInner.java b/mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/java/com/mybatisflex/test/model/FieldMappingInner.java new file mode 100644 index 00000000..5c77e6ae --- /dev/null +++ b/mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/java/com/mybatisflex/test/model/FieldMappingInner.java @@ -0,0 +1,71 @@ +package com.mybatisflex.test.model; + +import com.mybatisflex.annotation.Id; +import com.mybatisflex.annotation.KeyType; +import com.mybatisflex.annotation.Table; +import com.mybatisflex.core.activerecord.Model; +import com.mybatisflex.core.keygen.KeyGenerators; + +import java.util.Date; +import java.util.Objects; + +@Table("field_mapping_inner") +public class FieldMappingInner extends Model { + @Id(keyType = KeyType.Generator,value = KeyGenerators.snowFlakeId) + private String id; + private String outId; + private Date createDate; + + public static FieldMappingInner create() { + return new FieldMappingInner(); + } + + public String getId() { + return id; + } + + public FieldMappingInner setId(String id) { + this.id = id; + return this; + } + + public String getOutId() { + return outId; + } + + public FieldMappingInner setOutId(String outId) { + this.outId = outId; + return this; + } + + public Date getCreateDate() { + return createDate; + } + + public FieldMappingInner setCreateDate(Date createDate) { + this.createDate = createDate; + return this; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + FieldMappingInner that = (FieldMappingInner) o; + return Objects.equals(id, that.id) && Objects.equals(outId, that.outId) && Objects.equals(createDate, that.createDate); + } + + @Override + public int hashCode() { + return Objects.hash(id, outId, createDate); + } + + @Override + public String toString() { + return "FieldMappingInner{" + + "id='" + id + '\'' + + ", outId='" + outId + '\'' + + ", createDate=" + createDate + + '}'; + } +} diff --git a/mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/resources/application.yml b/mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/resources/application.yml index 0ce252f9..c6e3ecb6 100644 --- a/mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/resources/application.yml +++ b/mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/resources/application.yml @@ -7,7 +7,7 @@ spring: # driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/flex_test username: root - password: 12345678 + password: Aa123456# # driver-class-name: # datasource: # driver-class-name: org.h2.Driver diff --git a/mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/resources/field_mapping_test.sql b/mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/resources/field_mapping_test.sql new file mode 100644 index 00000000..b71203a7 --- /dev/null +++ b/mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/resources/field_mapping_test.sql @@ -0,0 +1,12 @@ +create table field_mapping +( + id varchar(255) not null + primary key +); +create table field_mapping_inner +( + id varchar(255) not null + primary key, + out_id varchar(255) null, + create_date timestamp null +); diff --git a/mybatis-flex-test/mybatis-flex-spring-boot-test/src/test/java/com/mybatisflex/test/service/FieldMappingTest.java b/mybatis-flex-test/mybatis-flex-spring-boot-test/src/test/java/com/mybatisflex/test/service/FieldMappingTest.java new file mode 100644 index 00000000..0ce0887e --- /dev/null +++ b/mybatis-flex-test/mybatis-flex-spring-boot-test/src/test/java/com/mybatisflex/test/service/FieldMappingTest.java @@ -0,0 +1,30 @@ +package com.mybatisflex.test.service; + +import com.mybatisflex.test.mapper.FieldMappingInnerMapper; +import com.mybatisflex.test.mapper.FieldMappingMapper; +import com.mybatisflex.test.model.FieldMapping; +import com.mybatisflex.test.model.FieldMappingInner; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; + +import java.util.Date; + +@SpringBootTest +public class FieldMappingTest { + @Autowired + FieldMappingMapper fieldMappingMapper; + @Autowired + FieldMappingInnerMapper fieldMappingInnerMapper; + @Test + void testFieldMapping() { + String fieldId = FieldMapping.create().saveOpt().get().getId(); + FieldMappingInner.create().setCreateDate(new Date()).setOutId(fieldId).save(); + FieldMapping.create() + .withFields() + .fieldMapping(FieldMapping::getInnerDate, con -> + FieldMappingInner.create().select(FieldMappingInner::getCreateDate).where(FieldMappingInner::getOutId).eq(con.getId()).toQueryWrapper() + ) + .list().forEach(System.out::println); + } +}