Class EqualsHashCodePlugin

java.lang.Object
org.mybatis.generator.api.PluginAdapter
org.mybatis.generator.plugins.EqualsHashCodePlugin
All Implemented Interfaces:
Plugin

public class EqualsHashCodePlugin extends PluginAdapter
This plugin adds equals() and hashCode() methods to the generated model classes. It demonstrates the process of adding methods to generated classes

The equals method generated by this class is correct in most cases, but will probably NOT be correct if you have specified a rootClass - because our equals method only checks the fields it knows about.

Similarly, the hashCode method generated by this class only relies on fields it knows about. Anything you add, or fields in a super class will not be factored into the hash code.

Author:
Jeff Butler
  • Constructor Details

    • EqualsHashCodePlugin

      public EqualsHashCodePlugin()
  • Method Details

    • setProperties

      public void setProperties(Properties properties)
      Description copied from interface: Plugin
      Set properties from the plugin configuration.
      Specified by:
      setProperties in interface Plugin
      Overrides:
      setProperties in class PluginAdapter
      Parameters:
      properties - the new properties
    • validate

      public boolean validate(List<String> warnings)
      This plugin is always valid - no properties are required.
      Parameters:
      warnings - add strings to this list to specify warnings. For example, if the plugin is invalid, you should specify why. Warnings are reported to users after the completion of the run.
      Returns:
      true if the plugin is in a valid state. Invalid plugins will not be called
    • modelBaseRecordClassGenerated

      public boolean modelBaseRecordClassGenerated(TopLevelClass topLevelClass, IntrospectedTable introspectedTable)
      Description copied from interface: Plugin
      This method is called after the base record class is generated by the JavaModelGenerator. This method will only be called if the table rules call for generation of a base record class.

      This method is only guaranteed to be called by the default Java model generators. Other user supplied generators may, or may not, call this method.
      Parameters:
      topLevelClass - the generated base record class
      introspectedTable - The class containing information about the table as introspected from the database
      Returns:
      true if the class should be generated, false if the generated class should be ignored. In the case of multiple plugins, the first plugin returning false will disable the calling of further plugins.
    • modelPrimaryKeyClassGenerated

      public boolean modelPrimaryKeyClassGenerated(TopLevelClass topLevelClass, IntrospectedTable introspectedTable)
      Description copied from interface: Plugin
      This method is called after the primary key class is generated by the JavaModelGenerator. This method will only be called if the table rules call for generation of a primary key class.

      This method is only guaranteed to be called by the Java model generators. Other user supplied generators may, or may not, call this method.
      Parameters:
      topLevelClass - the generated primary key class
      introspectedTable - The class containing information about the table as introspected from the database
      Returns:
      true if the class should be generated, false if the generated class should be ignored. In the case of multiple plugins, the first plugin returning false will disable the calling of further plugins.
    • modelRecordWithBLOBsClassGenerated

      public boolean modelRecordWithBLOBsClassGenerated(TopLevelClass topLevelClass, IntrospectedTable introspectedTable)
      Description copied from interface: Plugin
      This method is called after the record with BLOBs class is generated by the JavaModelGenerator. This method will only be called if the table rules call for generation of a record with BLOBs class.

      This method is only guaranteed to be called by the default Java model generators. Other user supplied generators may, or may not, call this method.
      Parameters:
      topLevelClass - the generated record with BLOBs class
      introspectedTable - The class containing information about the table as introspected from the database
      Returns:
      true if the class should be generated, false if the generated class should be ignored. In the case of multiple plugins, the first plugin returning false will disable the calling of further plugins.
    • generateEquals

      protected void generateEquals(TopLevelClass topLevelClass, List<IntrospectedColumn> introspectedColumns, IntrospectedTable introspectedTable)
      Generates an equals method that does a comparison of all fields.

      The generated equals method will be correct unless:

      • Other fields have been added to the generated classes
      • A rootClass is specified that holds state
      Parameters:
      topLevelClass - the class to which the method will be added
      introspectedColumns - column definitions of this class and any superclass of this class
      introspectedTable - the table corresponding to this class
    • generateHashCode

      protected void generateHashCode(TopLevelClass topLevelClass, List<IntrospectedColumn> introspectedColumns, IntrospectedTable introspectedTable)
      Generates a hashCode method that includes all fields.

      Note that this implementation is based on the eclipse foundation hashCode generator.

      Parameters:
      topLevelClass - the class to which the method will be added
      introspectedColumns - column definitions of this class and any superclass of this class
      introspectedTable - the table corresponding to this class