diff --git a/src/main/java/com/elasticsearch/engine/demo/domain/mysql/jooq/repository/PersonExtendJooqDao.java b/src/main/java/com/elasticsearch/engine/demo/domain/mysql/jooq/repository/PersonExtendJooqDao.java index 1507629c573a7340c90097bef37ac34d14e5f793..ea8a19391d9c4e1e7c65341b1fc72137dda01702 100644 --- a/src/main/java/com/elasticsearch/engine/demo/domain/mysql/jooq/repository/PersonExtendJooqDao.java +++ b/src/main/java/com/elasticsearch/engine/demo/domain/mysql/jooq/repository/PersonExtendJooqDao.java @@ -1,9 +1,20 @@ package com.elasticsearch.engine.demo.domain.mysql.jooq.repository; +import com.elasticsearch.engine.demo.domain.es.entity.PersonEsEntity; + +import java.util.List; + /** * @author wanghuan * @description: ROOD * @date 2022-05-31 23:18 */ -public interface PersonExtendJooqDao{ +public interface PersonExtendJooqDao { + + List queryList(Integer status, String hobby); + + List queryListBack(Integer status, String hobby); + + List queryListBackPe(Integer status, String hobby); + } diff --git a/src/main/java/com/elasticsearch/engine/demo/domain/mysql/jooq/repository/impl/PersonExtendJooqDaoImpl.java b/src/main/java/com/elasticsearch/engine/demo/domain/mysql/jooq/repository/impl/PersonExtendJooqDaoImpl.java index 548c92f8cfe9b38a5fc90721b8687640653a016e..d0d8cea49511241cd59fed85bab3ac493dd8505c 100644 --- a/src/main/java/com/elasticsearch/engine/demo/domain/mysql/jooq/repository/impl/PersonExtendJooqDaoImpl.java +++ b/src/main/java/com/elasticsearch/engine/demo/domain/mysql/jooq/repository/impl/PersonExtendJooqDaoImpl.java @@ -1,14 +1,64 @@ package com.elasticsearch.engine.demo.domain.mysql.jooq.repository.impl; +import com.elasticsearch.engine.base.model.annotion.EsQueryIndex; +import com.elasticsearch.engine.demo.domain.es.entity.PersonEsEntity; +import com.elasticsearch.engine.demo.domain.mysql.jooq.generator.Tables; +import com.elasticsearch.engine.demo.domain.mysql.jooq.generator.tables.Person; +import com.elasticsearch.engine.demo.domain.mysql.jooq.generator.tables.PersonExtend; import com.elasticsearch.engine.demo.domain.mysql.jooq.repository.PersonExtendJooqDao; +import com.elasticsearch.engine.jooq.annotion.JooqEsQuery; +import org.jooq.DSLContext; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import java.util.List; + /** * @author wanghuan * @description PersonExtendJooqDaoImpl * @mail 958721894@qq.com * @date 2022-06-05 12:31 */ +@EsQueryIndex("person_es_index") @Component public class PersonExtendJooqDaoImpl implements PersonExtendJooqDao { + + @Autowired + private DSLContext context; + + private final PersonExtend PERSON_EXTEND = Tables.PERSON_EXTEND; + + + private final Person PERSON = Tables.PERSON; + + + /** + * @param status + * @param hobby + * @return + */ + @JooqEsQuery + @Override + public List queryList(Integer status, String hobby) { + return context.select().from(PERSON).leftJoin(PERSON_EXTEND).on(PERSON.PERSON_NO.eq(PERSON_EXTEND.PERSON_NO)) + .where(PERSON.STATUS.eq(status.byteValue()).and(PERSON_EXTEND.HOBBY.eq(hobby)) + ).fetchInto(PersonEsEntity.class); + } + + @JooqEsQuery(backColumn = "personNo", backColumnType = String.class) + @Override + public List queryListBack(Integer status, String hobby) { + return context.select().from(PERSON).leftJoin(PERSON_EXTEND).on(PERSON.PERSON_NO.eq(PERSON_EXTEND.PERSON_NO)) + .where(PERSON.STATUS.eq(status.byteValue()).and(PERSON_EXTEND.HOBBY.eq(hobby)) + ).fetchInto(PersonEsEntity.class); + } + + + @JooqEsQuery(tableName = "person_extend", backColumn = "personNo", backColumnType = String.class) + @Override + public List queryListBackPe(Integer status, String hobby) { + return context.select().from(PERSON).leftJoin(PERSON_EXTEND).on(PERSON.PERSON_NO.eq(PERSON_EXTEND.PERSON_NO)) + .where(PERSON.STATUS.eq(status.byteValue()).and(PERSON_EXTEND.HOBBY.eq(hobby)) + ).fetchInto(PersonEsEntity.class); + } } diff --git a/src/main/java/com/elasticsearch/engine/demo/domain/mysql/mapper/PersonExtendMapper.java b/src/main/java/com/elasticsearch/engine/demo/domain/mysql/mapper/PersonExtendMapper.java index aee85c01c4eecfbc01a32f81bdce23d9430cfa2f..99eff429277826b26a394e69fa75d4265437e8c2 100644 --- a/src/main/java/com/elasticsearch/engine/demo/domain/mysql/mapper/PersonExtendMapper.java +++ b/src/main/java/com/elasticsearch/engine/demo/domain/mysql/mapper/PersonExtendMapper.java @@ -21,11 +21,18 @@ public interface PersonExtendMapper { int insertList(List persons); @MybatisEsQuery - List queryList(@Param("status") Integer status, @Param("hobby")String hobby); + List queryList(@Param("status") Integer status, @Param("hobby") String hobby); - @MybatisEsQuery(backColumn = "personNo",backColumnType = String.class) - List queryListBack(@Param("status") Integer status, @Param("hobby")String hobby); + @MybatisEsQuery(backColumn = "personNo", backColumnType = String.class) + List queryListBack(@Param("status") Integer status, @Param("hobby") String hobby); - @MybatisEsQuery(tableName = "pe",backColumn = "personNo",backColumnType = String.class) - List queryListBackPe(@Param("status") Integer status, @Param("hobby")String hobby); + /** + * sql中person_extend + * + * @param status + * @param hobby + * @return + */ + @MybatisEsQuery(tableName = "person_extend", backColumn = "personNo", backColumnType = String.class) + List queryListBackPe(@Param("status") Integer status, @Param("hobby") String hobby); } diff --git a/src/test/java/com/elasticsearch/engine/demo/extend/EsEngineExtendJooqQueryTest.java b/src/test/java/com/elasticsearch/engine/demo/extend/EsEngineExtendJooqQueryTest.java index aca2aad5a07919193c2b7e9ec5bc376b754960e6..c04dd698eb4114079b87426fcee3d4cb2e0d0e85 100644 --- a/src/test/java/com/elasticsearch/engine/demo/extend/EsEngineExtendJooqQueryTest.java +++ b/src/test/java/com/elasticsearch/engine/demo/extend/EsEngineExtendJooqQueryTest.java @@ -1,7 +1,9 @@ package com.elasticsearch.engine.demo.extend; import com.elasticsearch.engine.base.common.utils.JsonParser; +import com.elasticsearch.engine.demo.domain.es.entity.PersonEsEntity; import com.elasticsearch.engine.demo.domain.mysql.entity.PersonEntity; +import com.elasticsearch.engine.demo.domain.mysql.jooq.repository.PersonExtendJooqDao; import com.elasticsearch.engine.demo.domain.mysql.jooq.repository.PersonJooqDao; import com.elasticsearch.engine.demo.dto.result.PersonGroupResult; import com.google.common.collect.Lists; @@ -25,10 +27,13 @@ import java.util.List; @RunWith(SpringRunner.class) @SpringBootTest public class EsEngineExtendJooqQueryTest { - + @Resource private PersonJooqDao personJooqDao; + @Resource + private PersonExtendJooqDao personExtendJooqDao; + /** * 单个查询 */ @@ -125,6 +130,33 @@ public class EsEngineExtendJooqQueryTest { //☻,*.,*.☺☻,*.,*.☺☻,*.,*.☺☻,*.,*.☺☻,*.,*.☺☻,*.,*.☺ 关联查询测试 ☻,*.,*.☺☻,*.,*.☺☻,*.,*.☺☻,*.,*.☺☻,*.,*.☺☻,*.,*.☺// + /** + * 关联查询测试 + */ + @Test + public void testJoinQueryList() { + List results = personExtendJooqDao.queryList(4, "踢足球"); + System.out.println(JsonParser.asJson(results)); + } + + /** + * 关联查询回表测试 + */ + @Test + public void testJoinQueryListBack() { + List results = personExtendJooqDao.queryListBack(4, "踢足球"); + System.out.println(JsonParser.asJson(results)); + } + + /** + * 关联查询回表测试 指定回表表名 + */ + @Test + public void testJoinQueryListBackPe() { + List results = personExtendJooqDao.queryListBackPe(4, "踢足球"); + System.out.println(JsonParser.asJson(results)); + } + //☻,*.,*.☺☻,*.,*.☺☻,*.,*.☺☻,*.,*.☺☻,*.,*.☺☻,*.,*.☺ 回表查询测试 ☻,*.,*.☺☻,*.,*.☺☻,*.,*.☺☻,*.,*.☺☻,*.,*.☺☻,*.,*.☺// /**