public class

EqualsHashCodePlugin

extends PluginAdapter
java.lang.Object
   ↳ org.mybatis.generator.api.PluginAdapter
     ↳ org.mybatis.generator.plugins.EqualsHashCodePlugin

Class Overview

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.

Summary

[Expand]
Inherited Fields
From class org.mybatis.generator.api.PluginAdapter
Public Constructors
EqualsHashCodePlugin()
Public Methods
boolean modelBaseRecordClassGenerated(TopLevelClass topLevelClass, IntrospectedTable introspectedTable)
This method is called after the base record class is generated by the JavaModelGenerator.
boolean modelPrimaryKeyClassGenerated(TopLevelClass topLevelClass, IntrospectedTable introspectedTable)
This method is called after the primary key class is generated by the JavaModelGenerator.
boolean modelRecordWithBLOBsClassGenerated(TopLevelClass topLevelClass, IntrospectedTable introspectedTable)
This method is called after the record with BLOBs class is generated by the JavaModelGenerator.
boolean validate(List<String> warnings)
This plugin is always valid - no properties are required
Protected Methods
void generateEquals(TopLevelClass topLevelClass, List<IntrospectedColumn> introspectedColumns, IntrospectedTable introspectedTable)
Generates an equals method that does a comparison of all fields.
void generateHashCode(TopLevelClass topLevelClass, List<IntrospectedColumn> introspectedColumns, IntrospectedTable introspectedTable)
Generates a hashCode method that includes all fields.
[Expand]
Inherited Methods
From class org.mybatis.generator.api.PluginAdapter
From class java.lang.Object
From interface org.mybatis.generator.api.Plugin

Public Constructors

public EqualsHashCodePlugin ()

Public Methods

public boolean modelBaseRecordClassGenerated (TopLevelClass topLevelClass, IntrospectedTable introspectedTable)

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.

public boolean modelPrimaryKeyClassGenerated (TopLevelClass topLevelClass, IntrospectedTable introspectedTable)

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.

public boolean modelRecordWithBLOBsClassGenerated (TopLevelClass topLevelClass, IntrospectedTable introspectedTable)

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.

public boolean validate (List<String> warnings)

This plugin is always valid - no properties are required

Protected Methods

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

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