package com.freetmp.mbg.plugin; import org.mybatis.generator.api.IntrospectedTable; import org.mybatis.generator.api.PluginAdapter; import org.mybatis.generator.api.dom.java.FullyQualifiedJavaType; import org.mybatis.generator.api.dom.java.TopLevelClass; import java.util.List; /** * 对QueryDsl提供支持的插件 * * @author Pin Liu */ public class QueryDslPlugin extends PluginAdapter { public static final String QUERY_ENTITY_ANNOTATION = "@QueryEntity"; public static final FullyQualifiedJavaType QUERY_ENTITY_ANNOTATION_TYPE = new FullyQualifiedJavaType("com.mysema.query.annotations.QueryEntity"); @Override public boolean validate(List<String> warnings) { return true; } @Override public boolean modelBaseRecordClassGenerated(TopLevelClass topLevelClass, IntrospectedTable introspectedTable) { addQueryEntityAnnotation(topLevelClass); return true; } @Override public boolean modelPrimaryKeyClassGenerated(TopLevelClass topLevelClass, IntrospectedTable introspectedTable) { addQueryEntityAnnotation(topLevelClass); return true; } @Override public boolean modelRecordWithBLOBsClassGenerated(TopLevelClass topLevelClass, IntrospectedTable introspectedTable) { addQueryEntityAnnotation(topLevelClass); return true; } public void addQueryEntityAnnotation(TopLevelClass topLevelClass) { topLevelClass.addAnnotation(QUERY_ENTITY_ANNOTATION); topLevelClass.addImportedType(QUERY_ENTITY_ANNOTATION_TYPE); } }