{"id":21636,"date":"2024-03-15T22:23:13","date_gmt":"2024-03-15T22:23:13","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/how-to-use-the-equalsandhashcode-annotation-in-springboot\/"},"modified":"2024-03-21T20:57:38","modified_gmt":"2024-03-21T20:57:38","slug":"how-to-use-the-equalsandhashcode-annotation-in-springboot","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/how-to-use-the-equalsandhashcode-annotation-in-springboot\/","title":{"rendered":"How to use the @EqualsAndHashCode annotation in SpringBoot?"},"content":{"rendered":"<p>In Spring Boot, the @EqualsAndHashCode annotation can be used to automatically generate the equals() and hashCode() methods. This annotation can be applied at the class level to automatically generate the equals() and hashCode() methods based on the fields defined in the class.<\/p>\n<p>A simple example of using the @EqualsAndHashCode annotation:<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-keyword\">import<\/span> lombok.EqualsAndHashCode;\r\n\r\n<span class=\"hljs-meta\">@EqualsAndHashCode<\/span>\r\n<span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title class_\">User<\/span> {\r\n    <span class=\"hljs-keyword\">private<\/span> String name;\r\n    <span class=\"hljs-keyword\">private<\/span> <span class=\"hljs-type\">int<\/span> age;\r\n    <span class=\"hljs-comment\">\/\/ \u7701\u7565\u6784\u9020\u51fd\u6570\u3001getter\u548csetter\u7b49<\/span>\r\n\r\n    <span class=\"hljs-comment\">\/\/ \u5728\u6b64\u5904\u53ef\u4ee5\u7701\u7565equals\u548chashCode\u65b9\u6cd5\u7684\u5b9e\u73b0<\/span>\r\n}\r\n<\/code><\/pre>\n<p>In the example above, the equals() and hashCode() methods in the User class will be generated based on the name and age fields in the class. You can use the exclude attribute of the @EqualsAndHashCode annotation to exclude certain fields, or use the of attribute to specify which fields to include. For example, if you want to exclude the age field, you can use the exclude attribute.<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-meta\">@EqualsAndHashCode(exclude = \"age\")<\/span>\r\n<span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title class_\">User<\/span> {\r\n    <span class=\"hljs-keyword\">private<\/span> String name;\r\n    <span class=\"hljs-keyword\">private<\/span> <span class=\"hljs-type\">int<\/span> age;\r\n    <span class=\"hljs-comment\">\/\/ \u7701\u7565\u6784\u9020\u51fd\u6570\u3001getter\u548csetter\u7b49<\/span>\r\n\r\n    <span class=\"hljs-comment\">\/\/ \u5728\u6b64\u5904\u53ef\u4ee5\u7701\u7565equals\u548chashCode\u65b9\u6cd5\u7684\u5b9e\u73b0<\/span>\r\n}\r\n<\/code><\/pre>\n<p>If you only want to generate the equals() and hashCode() methods based on the name field, you can use the of attribute.<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-meta\">@EqualsAndHashCode(of = \"name\")<\/span>\r\n<span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title class_\">User<\/span> {\r\n    <span class=\"hljs-keyword\">private<\/span> String name;\r\n    <span class=\"hljs-keyword\">private<\/span> <span class=\"hljs-type\">int<\/span> age;\r\n    <span class=\"hljs-comment\">\/\/ \u7701\u7565\u6784\u9020\u51fd\u6570\u3001getter\u548csetter\u7b49<\/span>\r\n\r\n    <span class=\"hljs-comment\">\/\/ \u5728\u6b64\u5904\u53ef\u4ee5\u7701\u7565equals\u548chashCode\u65b9\u6cd5\u7684\u5b9e\u73b0<\/span>\r\n}\r\n<\/code><\/pre>\n<p>By using the @EqualsAndHashCode annotation, code can be streamlined and the equals() and hashCode() methods will automatically update when the fields in the class change.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In Spring Boot, the @EqualsAndHashCode annotation can be used to automatically generate the equals() and hashCode() methods. This annotation can be applied at the class level to automatically generate the equals() and hashCode() methods based on the fields defined in the class. A simple example of using the @EqualsAndHashCode annotation: import lombok.EqualsAndHashCode; @EqualsAndHashCode public class [&hellip;]<\/p>\n","protected":false},"author":6,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-21636","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How to use the @EqualsAndHashCode annotation in SpringBoot? - Blog - Silicon Cloud<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/blog\/how-to-use-the-equalsandhashcode-annotation-in-springboot\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to use the @EqualsAndHashCode annotation in SpringBoot?\" \/>\n<meta property=\"og:description\" content=\"In Spring Boot, the @EqualsAndHashCode annotation can be used to automatically generate the equals() and hashCode() methods. This annotation can be applied at the class level to automatically generate the equals() and hashCode() methods based on the fields defined in the class. A simple example of using the @EqualsAndHashCode annotation: import lombok.EqualsAndHashCode; @EqualsAndHashCode public class [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/how-to-use-the-equalsandhashcode-annotation-in-springboot\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-15T22:23:13+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-21T20:57:38+00:00\" \/>\n<meta name=\"author\" content=\"Benjamin Taylor\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:site\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Benjamin Taylor\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-use-the-equalsandhashcode-annotation-in-springboot\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-use-the-equalsandhashcode-annotation-in-springboot\/\"},\"author\":{\"name\":\"Benjamin Taylor\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/ac801fe9549a25960ce48aa2e0a691c9\"},\"headline\":\"How to use the @EqualsAndHashCode annotation in SpringBoot?\",\"datePublished\":\"2024-03-15T22:23:13+00:00\",\"dateModified\":\"2024-03-21T20:57:38+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-use-the-equalsandhashcode-annotation-in-springboot\/\"},\"wordCount\":172,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-use-the-equalsandhashcode-annotation-in-springboot\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/how-to-use-the-equalsandhashcode-annotation-in-springboot\/\",\"name\":\"How to use the @EqualsAndHashCode annotation in SpringBoot? - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-15T22:23:13+00:00\",\"dateModified\":\"2024-03-21T20:57:38+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-use-the-equalsandhashcode-annotation-in-springboot\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/how-to-use-the-equalsandhashcode-annotation-in-springboot\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-use-the-equalsandhashcode-annotation-in-springboot\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to use the @EqualsAndHashCode annotation in SpringBoot?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"name\":\"Silicon Cloud Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\",\"name\":\"Silicon Cloud Blog\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"contentUrl\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"width\":1024,\"height\":1024,\"caption\":\"Silicon Cloud Blog\"},\"image\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\",\"https:\/\/twitter.com\/SiliCloudGlobal\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/ac801fe9549a25960ce48aa2e0a691c9\",\"name\":\"Benjamin Taylor\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/ec2e3d3e2d525fd148047c4520ae7c1cdccd1f4b48a1a488422b31f04f345c14?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/ec2e3d3e2d525fd148047c4520ae7c1cdccd1f4b48a1a488422b31f04f345c14?s=96&d=mm&r=g\",\"caption\":\"Benjamin Taylor\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/benjamintaylor\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How to use the @EqualsAndHashCode annotation in SpringBoot? - Blog - Silicon Cloud","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/blog\/how-to-use-the-equalsandhashcode-annotation-in-springboot\/","og_locale":"en_US","og_type":"article","og_title":"How to use the @EqualsAndHashCode annotation in SpringBoot?","og_description":"In Spring Boot, the @EqualsAndHashCode annotation can be used to automatically generate the equals() and hashCode() methods. This annotation can be applied at the class level to automatically generate the equals() and hashCode() methods based on the fields defined in the class. A simple example of using the @EqualsAndHashCode annotation: import lombok.EqualsAndHashCode; @EqualsAndHashCode public class [&hellip;]","og_url":"https:\/\/www.silicloud.com\/blog\/how-to-use-the-equalsandhashcode-annotation-in-springboot\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-15T22:23:13+00:00","article_modified_time":"2024-03-21T20:57:38+00:00","author":"Benjamin Taylor","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Benjamin Taylor","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/how-to-use-the-equalsandhashcode-annotation-in-springboot\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-use-the-equalsandhashcode-annotation-in-springboot\/"},"author":{"name":"Benjamin Taylor","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/ac801fe9549a25960ce48aa2e0a691c9"},"headline":"How to use the @EqualsAndHashCode annotation in SpringBoot?","datePublished":"2024-03-15T22:23:13+00:00","dateModified":"2024-03-21T20:57:38+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-use-the-equalsandhashcode-annotation-in-springboot\/"},"wordCount":172,"commentCount":0,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/how-to-use-the-equalsandhashcode-annotation-in-springboot\/","url":"https:\/\/www.silicloud.com\/blog\/how-to-use-the-equalsandhashcode-annotation-in-springboot\/","name":"How to use the @EqualsAndHashCode annotation in SpringBoot? - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-15T22:23:13+00:00","dateModified":"2024-03-21T20:57:38+00:00","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-use-the-equalsandhashcode-annotation-in-springboot\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/how-to-use-the-equalsandhashcode-annotation-in-springboot\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/how-to-use-the-equalsandhashcode-annotation-in-springboot\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to use the @EqualsAndHashCode annotation in SpringBoot?"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/blog\/#website","url":"https:\/\/www.silicloud.com\/blog\/","name":"Silicon Cloud Blog","description":"","publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.silicloud.com\/blog\/#organization","name":"Silicon Cloud Blog","url":"https:\/\/www.silicloud.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","contentUrl":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","width":1024,"height":1024,"caption":"Silicon Cloud Blog"},"image":{"@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SiliCloudGlobal\/","https:\/\/twitter.com\/SiliCloudGlobal"]},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/ac801fe9549a25960ce48aa2e0a691c9","name":"Benjamin Taylor","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/ec2e3d3e2d525fd148047c4520ae7c1cdccd1f4b48a1a488422b31f04f345c14?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ec2e3d3e2d525fd148047c4520ae7c1cdccd1f4b48a1a488422b31f04f345c14?s=96&d=mm&r=g","caption":"Benjamin Taylor"},"url":"https:\/\/www.silicloud.com\/blog\/author\/benjamintaylor\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/21636","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=21636"}],"version-history":[{"count":1,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/21636\/revisions"}],"predecessor-version":[{"id":55509,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/21636\/revisions\/55509"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=21636"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=21636"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=21636"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}