001/** 002 * Copyright (c) 2022-2023, Mybatis-Flex (fuhai999@gmail.com). 003 * <p> 004 * Licensed under the Apache License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * <p> 008 * http://www.apache.org/licenses/LICENSE-2.0 009 * <p> 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 */ 016package com.mybatisflex.core.field; 017 018import com.mybatisflex.core.util.LambdaGetter; 019import com.mybatisflex.core.util.LambdaUtil; 020 021import java.io.Serializable; 022 023public class FieldQueryBuilder<T> implements Serializable { 024 025 private T entity; 026 private FieldQuery fieldQuery = new FieldQuery(); 027 028 public FieldQueryBuilder(T entity) { 029 this.entity = entity; 030 } 031 032 public FieldQueryBuilder<T> field(String field){ 033 fieldQuery.setField(field); 034 return this; 035 } 036 037 public FieldQueryBuilder<T> field(LambdaGetter<T> fn){ 038 return field(LambdaUtil.getFieldName(fn)); 039 } 040 041// public FieldQueryBuilder<T> type(Class<?> mappingType){ 042// fieldQuery.setMappingType(mappingType); 043// return this; 044// } 045 046 public FieldQueryBuilder<T> queryWrapper(QueryBuilder<T> fun){ 047 fieldQuery.setQueryWrapper(fun.build(entity)); 048 return this; 049 } 050 051 public FieldQuery build() { 052 return fieldQuery; 053 } 054}