Skip to main content

Spring Data JPA - @MappedSuperclass

In this tutorial we will learn about @MappedSuperclass and when we should use it.

And Simple Answer to that is you use it when you want to have have a super class that you don't want to create a table for it but just want to have it data attribute inheriated by its sub class like this 


For example you got an abstract super class Book here that has an Id , title and isbn data attribute it; and we have annoted it @MappedSuperclass annotation and we got 2 sub class also like Ebook and Paperback. and Ebook sub class and Paperback sub class extending that Book super class, inheriting its id, title and isbn data attribute; and both the sub class is annotated with @Entity annotation we got the table for each sub class entity but no table for mapped super class which is annotated with @MappedSuperclass. What happens is when we persist an instance of sub class entity like when we persist Ebook object we will have table created for it  with column all the data attribute inherited with books superclass we can see in diagram. Same with paperbook. 

 But the super class which Mapped with @MappedSupperclass annotation like Book super can't have table for itself.

So when you got a super class marked with the @MappedSuperclass annotation it can't also be marked as @Entity annotation. MappedSuperclass can't be an Entity as it doesn't have a sperate table defined for it. It just a MappedSuperclass not an Entity 

So if want to have base class or super class to have your common data attributes for you so that you don't have specify in each of your sub class then we can simply annotated with @MappedSuperclass annotation and we can inheriate subclass from it. So basically super class with the mapped super class  annotation lives only in your object model not in relation model which means from the data base perspective mapped super class is invisible but its data attribute are inheriated by its subclass and persisted to database table.



Reading data also quite efficient with mapped super class


Popular posts from this blog

How do I change the time zone of my Amazon RDS database instance?

As we know bydefault time in the format of UTC in mysql.We can set local time zone to our AWS RDS Instance for our application. or any other time zone prefared Cloud Based Website Hosting Service Provider Steps 1: Go to Services and Select RDS Now to change time zone we have to change "Parameter Group" in left side that is associated with DB instance first we can check default Parameter Group for our instance is Parameter group default.mysql5.7  ( in-sync ) like this. So we have to change the time zone in this Parameter Group.  now open that parameter group (default.mysql5.7)  and click on edit parameter. then search for time_zone (because we want to change it.) then we have to change time_zone only by default it is engine-default (that is utc)  we have to select Asia/Calcutta.  More information we can ref.

Changing the Time Zone on Amazon Linux Ec2 Instance

Amazon Linux instances are set to the UTC (Coordinated Universal Time) time zone by default, but you may wish to change the time on an instance to the local time or to another time zone in your network. Important These procedures are intended for use with Amazon Linux. For more information about other distributions, see their specific documentation. To change the time zone on an instance Identify the time zone to use on the instance. The  /usr/share/zoneinfo  directory contains a hierarchy of time zone data files. Browse the directory structure at that location to find a file for your time zone. [ec2-user ~]$ ls /usr/share/zoneinfo Africa Chile GB Indian Mideast posixrules US America CST6CDT GB-Eire Iran MST PRC UTC Antarctica Cuba GMT MST7MDT PST8PDT WET Arctic EET GMT0 Israel Navajo right W-SU ... Some of the entries at this location are directo

Digital Marketing

What actually is Digital Marketing? This post will help you understand the insights of Digital Marketing What is Digital Marketing? Digital Marketing is an integral part of the overall marketing strategies of any business. It basically covers the advertisement of products/services/business/brand via digital channels. The digital channels could be of any type like websites, search engines, social media, emails, SMS, and MMS. In case if you're using all these digital channels for the marketing, make sure to have all the statistics & workflow of your campaigns via marketing automation. What are the types of digital marketing? Well, there are 6 core digital marketing types: Search Engine Optimization (SEO) : Search Engine Optimization is nothing but a long-term process of improving your website rankings on search engine results pages (SERPs), which in turn has a wide range of tactics & strategies to implement. Although there is no specific method or a  spec