注解@MappedSuperclass的作用

使用条件:
当我们进行开发项目时,我们经常会用到实体映射到数据库表的操作,此时我们经常会发现在我们需要映射的几个实体类中,会有共同的属性,例如编号ID,创建者,创建时间,修改者,修改时间,备注等。遇到这种情况,我们可能会想到把这些属性抽象出来当成一个父类,然后再以不同的实体类来继承这个父类。
那么,我们便可以使用@MappedSuperclass注解

通过这个注解,我们可以将该实体类当成基类实体,它不会映射到数据库表,

继承它的子类实体在映射时会自动扫描该基类实体的映射属性,添加到子类实体的对应数据库表中。

 1 /*
 2 * 泛化:继承关系
 3 * 告诉JPA这是所有类都继承的父类
 4 * */
 5 @MappedSuperclass
 6 public class BaseDomain {
 7     @Id
 8     @GeneratedValue
 9     protected Long id;
10
11     public Long getId() {
12         return id;
13     }
14
15     public void setId(Long id) {
16         this.id = id;
17     }
18 }

  子类:

 1 @Entity
 2 @Table(name = "department")
 3 public class Department extends BaseDomain {
 4     private String name;
 5
 9     public String getName() {
10         return name;
11     }
12
13     public void setName(String name) {
14         this.name = name;
15     }24 }

使用环境:

[email protected]注解使用在父类上面,是用来标识父类的作用

[email protected]标识的类表示其不能映射到数据库表,因为其不是一个完整的实体类,但是它所拥有的属性能够映射在     其子类对用的数据库表中

[email protected]标识得类不能再有@Entity或@Table注解  但是可以使用@Id 和@Column注解

原文地址:https://www.cnblogs.com/logoman/p/11707595.html

时间: 2024-11-04 19:50:38

注解@MappedSuperclass的作用的相关文章

JAVA 注解的几大作用及使用方法详解

JAVA 注解的几大作用及使用方法详解 (2013-01-22 15:13:04) 转载▼ 标签: java 注解 杂谈 分类: Java java 注解,从名字上看是注释,解释.但功能却不仅仅是注释那么简单.注解(Annotation) 为我们在代码中添加信息提供了一种形式化的方法,是我们可以在稍后 某个时刻方便地使用这些数据(通过 解析注解 来使用这些数据),常见的作用有以下几种: 1.生成文档.这是最常见的,也是java 最早提供的注解.常用的有@see @param @return 等:

@JsonIgnoreProperties注解不起作用的问题解决

最近做的一个东西要调第三方服务接口,要参照接口文档开发,但是第三方服务的接口字段名全部都是大写,本来以为这种应该没有什么问题.但是实际开发中发现大写的字段名字去调后台接口的时候报: org.codehaus.jackson.map.exc.UnrecognizedPropertyException: Unrecognized field "LOGIN_ACCOUNT" (Class com.sitech.cloud.core.user.AccountInfo), not marked

SpringMVC注解@RequestParam的作用及注意事项

一.作用 作用在方法传递的参数前,用于接收所传参数 例如:http://localhost:8081/selectStudentById?id=01 接收问号后面的参数值(允许多个参数) 二.注解内部的四个属性 1.name 指定传入的参数名称,其后面跟的参数名称一定要与前端传入的参数名称一致 2.value 指定传入的参数名称,其后面跟的参数名称一定要与前端传入的参数名称一致 3.requred 指定参数是否是必传参数,如果不指定,默认为true 4.defaultValue 指定参数的默认值

Shiro注解不起作用! @RequiresPermissions

shiro开启注解支持,必须将 <!-- 保证实现了Shiro内部lifecycle函数的bean执行 --> <bean id="lifecycleBeanPostProcessor" class="org.apache.shiro.spring.LifecycleBeanPostProcessor"/> <!-- 开启Shiro的注解(如@RequiresRoles,@RequiresPermissions),需借助SpringAO

Spring注解 不起作用

Spring 的context:component-scan扫描支持扫描jar包的方法: 在Eclipse 编辑器中调试程序时一切正常,但是打包放到服务器上时变出现了,Spring注解没有效果.原因就死eclipse自带的jar打包程序,默认打包的时候有个选项<Add directory entries>没有勾选,只要勾选了,勾选后就可以了

web api Route特性(注解)不起作用

在Web Api 的Controller里有两个Action  public string  Get(string order, int skip, int take)         {                          return "test";         }         [Route("GetButtons")]         [HttpGet]         public string GetButtons()        

注解@ResponseBody的作用

@ResponseBody通常是放在方法上,主要是在前端页面异步请求的时候,返回数据使用.直白点说就是加上这个注解之后,return的数据不会解析成返回跳转路径,而是会默认放在  response body 中,作为json返回,前端方便取值. 举个栗子: @RequestMapping("/login") @ResponseBody public User login(User user){ return user; } User字段:userName, pwd 那么在前台接收到的数

注解@NoRepositoryBean的作用

在做项目时创建对象的功能会交给Spring去管理在扫描Reposytory层包时会扫描到BaseReposytory接口 ; 所有对象类接口都会继承此接口 为了告诉JPA不要创建对应接口的bean对象 就在类上加注解@NoRepositoryBean 这样spring容器中就不会有BaseReposytory接口的bean对象 1 @NoRepositoryBean //告诉JPA不要创建对应接口的bean对象 2 public interface BaseReposittory <T,ID e

eclipse集成lombok注解不起作用

1.点击maven生成的lombok-1.16.18.jar右键,以jar的方式打开 2.弹出如下对话框,点击S[pecify location……]选择eclipse.exe文件,然后点击[Install / Update] 3.上述操作完成后,在eclipse.exe同级目录会出现lombok.jar文件且eclipse.ini文件中生成:-javaagent:lombok.jar ,表明已经成功. 4.手动在eclipse.ini文件的最后一行添加一行配置代码: -vmargs -java