{"id":5415,"date":"2012-04-17T18:09:35","date_gmt":"2012-04-17T12:39:35","guid":{"rendered":"http:\/\/www.tothenew.com\/blog\/?p=5415"},"modified":"2016-12-19T15:06:27","modified_gmt":"2016-12-19T09:36:27","slug":"handling-corrupted-references-through-ignorenotfound-database-mapping-in-grails","status":"publish","type":"post","link":"https:\/\/www.tothenew.com\/blog\/handling-corrupted-references-through-ignorenotfound-database-mapping-in-grails\/","title":{"rendered":"Handling corrupted references through ignoreNotFound database mapping in Grails"},"content":{"rendered":"<p>Hi,<br \/>\n&nbsp;<br \/>\nRecently i had a use-case where we have the legacy database and it contains the corrupted references of a non existent record in many-to-one relationship, and i have to populate a grid that contain info also from referenced record. As referenced record doesn&#8217;t exist, So when we refer to the certain record will result in Hibernate throwing exception :[java]org.hibernate.ObjectNotFoundException[\/java] and not a single record loaded on grid.<br \/>\n&nbsp;<br \/>\nAs it is legacy database i am not sure what should be the correct value for the particular record. <br \/>\n&nbsp;<br \/>\nAfter few searches, i come accross a property in grails database mapping to handle such cases, let see how it work :<br \/>\n[java]<br \/>\nclass Task{<br \/>\n   String name<br \/>\n   ParentTask parent<\/p>\n<p>   static mapping = {<br \/>\n       parent ignoreNotFound: true<br \/>\n   }<br \/>\n}<\/p>\n<p>class ParentTask{<br \/>\n   String name<br \/>\n}<br \/>\n[\/java]<br \/>\nBasically, ignoreNotFound simply mapping hibernate not-found property.<br \/>\n&nbsp;<br \/>\n<strong>Note : A record loaded with ignoreNotFound: true will throw an exception during call of save() because of the missing reference.<\/strong><br \/>\n&nbsp;<br \/>\nEither you can first update the invalid property or corrupted reference to the correct reference and then update other property that will solve your problem. It depend how you handle such scenario on your usecase.<br \/>\n&nbsp;<br \/>\nThanks,<br \/>\nTarun Pareek<br \/>\ntarun@intelligrape.com<\/p>\n<p><a href=\"http:\/\/www.tothenew.com\/blog\/author\/tarun\/\">More Blogs by Me<\/a><br \/>\n&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hi, &nbsp; Recently i had a use-case where we have the legacy database and it contains the corrupted references of a non existent record in many-to-one relationship, and i have to populate a grid that contain info also from referenced record. As referenced record doesn&#8217;t exist, So when we refer to the certain record will [&hellip;]<\/p>\n","protected":false},"author":20,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"iawp_total_views":3,"footnotes":""},"categories":[7],"tags":[804,4843,4840,265,803,805],"class_list":["post-5415","post","type-post","status-publish","format-standard","hentry","category-grails","tag-corrupted","tag-database","tag-grails","tag-hibernate","tag-ignorenotfound","tag-references"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.0.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"Hi, Recently i had a use-case where we have the legacy database and it contains the corrupted references of a non existent record in many-to-one relationship, and i have to populate a grid that contain info also from referenced record. As referenced record doesn&#039;t exist, So when we refer to the certain record will\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Tarun Pareek\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/www.tothenew.com\/blog\/handling-corrupted-references-through-ignorenotfound-database-mapping-in-grails\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"TO THE NEW BLOG\" \/>\n\t\t<meta property=\"og:type\" content=\"blog\" \/>\n\t\t<meta property=\"og:title\" content=\"Handling corrupted references through ignoreNotFound database mapping in Grails | TO THE NEW Blog\" \/>\n\t\t<meta property=\"og:description\" content=\"Hi, Recently i had a use-case where we have the legacy database and it contains the corrupted references of a non existent record in many-to-one relationship, and i have to populate a grid that contain info also from referenced record. As referenced record doesn&#039;t exist, So when we refer to the certain record will\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/www.tothenew.com\/blog\/handling-corrupted-references-through-ignorenotfound-database-mapping-in-grails\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/www.tothenew.com\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/www.tothenew.com\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:site\" content=\"@tothenew\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Handling corrupted references through ignoreNotFound database mapping in Grails | TO THE NEW Blog\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Hi, Recently i had a use-case where we have the legacy database and it contains the corrupted references of a non existent record in many-to-one relationship, and i have to populate a grid that contain info also from referenced record. As referenced record doesn&#039;t exist, So when we refer to the certain record will\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/www.tothenew.com\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/handling-corrupted-references-through-ignorenotfound-database-mapping-in-grails\\\/#article\",\"name\":\"Handling corrupted references through ignoreNotFound database mapping in Grails | TO THE NEW Blog\",\"headline\":\"Handling corrupted references through ignoreNotFound database mapping in Grails\",\"author\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/tarun\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/#organization\"},\"datePublished\":\"2012-04-17T18:09:35+05:30\",\"dateModified\":\"2016-12-19T15:06:27+05:30\",\"inLanguage\":\"en-US\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/handling-corrupted-references-through-ignorenotfound-database-mapping-in-grails\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/handling-corrupted-references-through-ignorenotfound-database-mapping-in-grails\\\/#webpage\"},\"articleSection\":\"Grails, corrupted, Database, Grails, hibernate, ignoreNotFound, references\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/handling-corrupted-references-through-ignorenotfound-database-mapping-in-grails\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.tothenew.com\\\/blog\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/category\\\/grails\\\/#listItem\",\"name\":\"Grails\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/category\\\/grails\\\/#listItem\",\"position\":2,\"name\":\"Grails\",\"item\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/category\\\/grails\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/handling-corrupted-references-through-ignorenotfound-database-mapping-in-grails\\\/#listItem\",\"name\":\"Handling corrupted references through ignoreNotFound database mapping in Grails\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/handling-corrupted-references-through-ignorenotfound-database-mapping-in-grails\\\/#listItem\",\"position\":3,\"name\":\"Handling corrupted references through ignoreNotFound database mapping in Grails\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/category\\\/grails\\\/#listItem\",\"name\":\"Grails\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/#organization\",\"name\":\"TO THE NEW Blog\",\"url\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/tarun\\\/#author\",\"url\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/tarun\\\/\",\"name\":\"Tarun Pareek\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/handling-corrupted-references-through-ignorenotfound-database-mapping-in-grails\\\/#authorImage\",\"url\":\"https:\\\/\\\/newersworld-sf-static.tothenew.net\\\/prod\\\/profilePicFolder\\\/0a83bd26-2bc9-45ee-9557-a0a9d3dce30d_446-Tarun-Pareek-PROFILEPICTURE.jpeg\",\"width\":96,\"height\":96,\"caption\":\"Tarun Pareek\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/handling-corrupted-references-through-ignorenotfound-database-mapping-in-grails\\\/#webpage\",\"url\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/handling-corrupted-references-through-ignorenotfound-database-mapping-in-grails\\\/\",\"name\":\"Handling corrupted references through ignoreNotFound database mapping in Grails | TO THE NEW Blog\",\"description\":\"Hi, Recently i had a use-case where we have the legacy database and it contains the corrupted references of a non existent record in many-to-one relationship, and i have to populate a grid that contain info also from referenced record. As referenced record doesn't exist, So when we refer to the certain record will\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/handling-corrupted-references-through-ignorenotfound-database-mapping-in-grails\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/tarun\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/tarun\\\/#author\"},\"datePublished\":\"2012-04-17T18:09:35+05:30\",\"dateModified\":\"2016-12-19T15:06:27+05:30\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/\",\"name\":\"TO THE NEW Blog\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Handling corrupted references through ignoreNotFound database mapping in Grails | TO THE NEW Blog","description":"Hi, Recently i had a use-case where we have the legacy database and it contains the corrupted references of a non existent record in many-to-one relationship, and i have to populate a grid that contain info also from referenced record. As referenced record doesn't exist, So when we refer to the certain record will","canonical_url":"https:\/\/www.tothenew.com\/blog\/handling-corrupted-references-through-ignorenotfound-database-mapping-in-grails\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.tothenew.com\/blog\/handling-corrupted-references-through-ignorenotfound-database-mapping-in-grails\/#article","name":"Handling corrupted references through ignoreNotFound database mapping in Grails | TO THE NEW Blog","headline":"Handling corrupted references through ignoreNotFound database mapping in Grails","author":{"@id":"https:\/\/www.tothenew.com\/blog\/author\/tarun\/#author"},"publisher":{"@id":"https:\/\/www.tothenew.com\/blog\/#organization"},"datePublished":"2012-04-17T18:09:35+05:30","dateModified":"2016-12-19T15:06:27+05:30","inLanguage":"en-US","mainEntityOfPage":{"@id":"https:\/\/www.tothenew.com\/blog\/handling-corrupted-references-through-ignorenotfound-database-mapping-in-grails\/#webpage"},"isPartOf":{"@id":"https:\/\/www.tothenew.com\/blog\/handling-corrupted-references-through-ignorenotfound-database-mapping-in-grails\/#webpage"},"articleSection":"Grails, corrupted, Database, Grails, hibernate, ignoreNotFound, references"},{"@type":"BreadcrumbList","@id":"https:\/\/www.tothenew.com\/blog\/handling-corrupted-references-through-ignorenotfound-database-mapping-in-grails\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/www.tothenew.com\/blog#listItem","position":1,"name":"Home","item":"https:\/\/www.tothenew.com\/blog","nextItem":{"@type":"ListItem","@id":"https:\/\/www.tothenew.com\/blog\/category\/grails\/#listItem","name":"Grails"}},{"@type":"ListItem","@id":"https:\/\/www.tothenew.com\/blog\/category\/grails\/#listItem","position":2,"name":"Grails","item":"https:\/\/www.tothenew.com\/blog\/category\/grails\/","nextItem":{"@type":"ListItem","@id":"https:\/\/www.tothenew.com\/blog\/handling-corrupted-references-through-ignorenotfound-database-mapping-in-grails\/#listItem","name":"Handling corrupted references through ignoreNotFound database mapping in Grails"},"previousItem":{"@type":"ListItem","@id":"https:\/\/www.tothenew.com\/blog#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/www.tothenew.com\/blog\/handling-corrupted-references-through-ignorenotfound-database-mapping-in-grails\/#listItem","position":3,"name":"Handling corrupted references through ignoreNotFound database mapping in Grails","previousItem":{"@type":"ListItem","@id":"https:\/\/www.tothenew.com\/blog\/category\/grails\/#listItem","name":"Grails"}}]},{"@type":"Organization","@id":"https:\/\/www.tothenew.com\/blog\/#organization","name":"TO THE NEW Blog","url":"https:\/\/www.tothenew.com\/blog\/"},{"@type":"Person","@id":"https:\/\/www.tothenew.com\/blog\/author\/tarun\/#author","url":"https:\/\/www.tothenew.com\/blog\/author\/tarun\/","name":"Tarun Pareek","image":{"@type":"ImageObject","@id":"https:\/\/www.tothenew.com\/blog\/handling-corrupted-references-through-ignorenotfound-database-mapping-in-grails\/#authorImage","url":"https:\/\/newersworld-sf-static.tothenew.net\/prod\/profilePicFolder\/0a83bd26-2bc9-45ee-9557-a0a9d3dce30d_446-Tarun-Pareek-PROFILEPICTURE.jpeg","width":96,"height":96,"caption":"Tarun Pareek"}},{"@type":"WebPage","@id":"https:\/\/www.tothenew.com\/blog\/handling-corrupted-references-through-ignorenotfound-database-mapping-in-grails\/#webpage","url":"https:\/\/www.tothenew.com\/blog\/handling-corrupted-references-through-ignorenotfound-database-mapping-in-grails\/","name":"Handling corrupted references through ignoreNotFound database mapping in Grails | TO THE NEW Blog","description":"Hi, Recently i had a use-case where we have the legacy database and it contains the corrupted references of a non existent record in many-to-one relationship, and i have to populate a grid that contain info also from referenced record. As referenced record doesn't exist, So when we refer to the certain record will","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/www.tothenew.com\/blog\/#website"},"breadcrumb":{"@id":"https:\/\/www.tothenew.com\/blog\/handling-corrupted-references-through-ignorenotfound-database-mapping-in-grails\/#breadcrumblist"},"author":{"@id":"https:\/\/www.tothenew.com\/blog\/author\/tarun\/#author"},"creator":{"@id":"https:\/\/www.tothenew.com\/blog\/author\/tarun\/#author"},"datePublished":"2012-04-17T18:09:35+05:30","dateModified":"2016-12-19T15:06:27+05:30"},{"@type":"WebSite","@id":"https:\/\/www.tothenew.com\/blog\/#website","url":"https:\/\/www.tothenew.com\/blog\/","name":"TO THE NEW Blog","inLanguage":"en-US","publisher":{"@id":"https:\/\/www.tothenew.com\/blog\/#organization"}}]},"og:locale":"en_US","og:site_name":"TO THE NEW BLOG","og:type":"blog","og:title":"Handling corrupted references through ignoreNotFound database mapping in Grails | TO THE NEW Blog","og:description":"Hi, Recently i had a use-case where we have the legacy database and it contains the corrupted references of a non existent record in many-to-one relationship, and i have to populate a grid that contain info also from referenced record. As referenced record doesn't exist, So when we refer to the certain record will","og:url":"https:\/\/www.tothenew.com\/blog\/handling-corrupted-references-through-ignorenotfound-database-mapping-in-grails\/","og:image":"https:\/\/www.tothenew.com\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png","og:image:secure_url":"https:\/\/www.tothenew.com\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png","twitter:card":"summary","twitter:site":"@tothenew","twitter:title":"Handling corrupted references through ignoreNotFound database mapping in Grails | TO THE NEW Blog","twitter:description":"Hi, Recently i had a use-case where we have the legacy database and it contains the corrupted references of a non existent record in many-to-one relationship, and i have to populate a grid that contain info also from referenced record. As referenced record doesn't exist, So when we refer to the certain record will","twitter:image":"https:\/\/www.tothenew.com\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png"},"aioseo_meta_data":{"post_id":"5415","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"Article","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"limit_modified_date":false,"created":"2021-04-30 08:11:00","updated":"2024-02-29 10:55:24","focus_keyword":null,"additional_keywords":null,"truseo_locale":null,"ai":null,"breadcrumb_settings":null,"seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.tothenew.com\/blog\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.tothenew.com\/blog\/category\/grails\/\" title=\"Grails\">Grails<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tHandling corrupted references through ignoreNotFound database mapping in Grails\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/www.tothenew.com\/blog"},{"label":"Grails","link":"https:\/\/www.tothenew.com\/blog\/category\/grails\/"},{"label":"Handling corrupted references through ignoreNotFound database mapping in Grails","link":"https:\/\/www.tothenew.com\/blog\/handling-corrupted-references-through-ignorenotfound-database-mapping-in-grails\/"}],"_links":{"self":[{"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/posts\/5415","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/users\/20"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/comments?post=5415"}],"version-history":[{"count":0,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/posts\/5415\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/media?parent=5415"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/categories?post=5415"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/tags?post=5415"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}