@MappedSuperclass的用法
用在实体的继承过程中的父类上;
父类Cat
package com.xj.model;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.MappedSuperclass;
@MappedSuperclass
public class Cat {
private Long id;
private String name;
@Id
@GeneratedValue
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
子类1 BeijingCat
package com.xj.model;
import javax.persistence.Entity;
import javax.persistence.Table;
@Entity
@Table(name="t_beijingcat")
public class BeijingCat extends Cat {
private String beijing;
public String getBeijing() {
return beijing;
}
public void setBeijing(String beijing) {
this.beijing = beijing;
}
}
子类2 ShanghaiCat
package com.xj.model;
import javax.persistence.Entity;
import javax.persistence.Table;
@Entity
@Table(name="t_shanghaiCat")
public class ShanghaiCat extends Cat {
private String shanghai;
public String getShanghai() {
return shanghai;
}
public void setShanghai(String shanghai) {
this.shanghai = shanghai;
}
}
结果生成 两张表t_beijingcat、 t_shanghaicat
如果不用@MappedSuperclass 而用@Entity替换的话,只会生成一张cat表,字段有:id,name,shanghaicat,bejingcat
分享到:
相关推荐
3. **注解限制:** 使用`@MappedSuperclass`注解的类不能同时使用`@Entity`或`@Table`注解。 **示例代码:** 假设有一个基类`BaseEntity`,其中包含了`id`属性,这个类被多个子类继承,如`User`和`Product`。在这种...
Java Persistence API (JPA) 是 Java 平台标准的 ORM(对象关系映射)规范,它提供了管理 Java 应用程序中的持久化数据的方法。JPA 的核心优势在于它能够简化数据库操作,并允许开发人员以面向对象的方式处理数据库...
在Java中,`@MappedSuperClass`是Hibernate提供的一个注解,它用于标记那些不直接映射到数据库表,但含有可继承字段或方法的抽象类。当一个类被这个注解标识时,它的属性和方法会被其子类继承,并且这些属性和方法会...
本文将详细介绍JPA框架中的常用注解及其使用方法,并结合具体的Java代码示例进行说明。 #### 二、JPA注解基础 JPA框架支持使用注解来定义实体类与数据库表之间的映射关系,极大地简化了配置工作。要使用JPA注解,...
Java持久化API (JPA) 是Java企业版5(JavaEE5) Enterprise JavaBean (EJB) 3.0规范的一部分,它的引入极大地简化了EJB的持久化过程,同时也提供了一种声明式的方法来定义Java对象如何被映射到关系数据库表中,这种...
`@MappedSuperclass`是一个非实体注解,用于那些包含要继承到实体类的字段和方法的类。这个类本身不会在数据库中映射为一个表,而是作为其他实体类的元数据提供者。 6. **继承和懒加载(Lazy Loading)** 当涉及...
- **作用**:当使用 `@ResponseBody` 注解时,方法的返回值将被序列化为指定格式(如 JSON)并直接写入 HTTP 响应体,而不是作为视图名称解析。 ##### 8. `@RequestBody` - **定义**:用于接收前端传来的 JSON ...
本文将详细介绍JPA中常用注解的使用方法和技巧。 @Entity:此注解用于声明一个类是实体类,并且该类中的对象会被映射到数据库表。实体类通常需要使用@Table注解来指定具体的数据库表名称。当实体类的名称和数据库表...
本文档主要介绍了使用Hibernate进行注解式开发的方法,并且针对Hibernate的基本使用及其配置进行了详尽的解释。Hibernate作为一个流行的Java持久层框架,提供了对象关系映射(ORM)的功能,使得Java应用程序能够更加...
JPA允许开发者通过声明式的方法将Java对象映射到关系型数据库的表中,从而减少对底层数据库操作的编码量,提供可移植性,并使Java对象与数据库之间的转换变得标准化。 JPA的核心概念包括以下几个方面: 1. 实体...
JPA通过使用批注(Annotations)来配置实体的行为,使得无需编写XML配置文件即可实现ORM功能。批注是元数据的一种形式,它们直接嵌入到Java源代码中,并在运行时由JPA提供程序解析以执行相应的操作。 1. **实体批注...
- 实体可以继承非实体类,反之亦然,但非实体类通常使用`@MappedSuperclass`注解,表示其为其他实体类提供公共属性和行为,而不直接参与数据库存储。 - 实体类可以是抽象类,抽象实体可以作为其他实体类的基类。 - ...
1. **实体类(Entity)**:`Order.java`,定义了订单对象的属性和方法,通过注解@MappedSuperclass、@Entity、@Id等,将这些对象与数据库表中的记录对应起来。 2. **配置文件(Configuration)**:`hibernate.cfg....
实体类通常会继承Hibernate的Entity接口,并使用注解@MappedSuperclass、@Table、@Id等来描述其在数据库中的映射关系。同时,编写DAO(Data Access Object)接口和实现,利用Hibernate的Session来执行SQL操作。 ...
实体类可以继承非实体类,但是非实体类不会映射到数据库表中,这通常通过`@MappedSuperclass`注解来实现,用于共享属性而无需数据库表对应。 #### 基数映射详述 接下来,我们深入讨论了一对一、一对多以及多对多的...
Spring Boot与JPA的结合使用能够快速构建出稳定、高效的应用程序。 #### 2. pom文件配置 在`pom.xml`文件中,添加Spring Boot JPA的依赖: ```xml <groupId>org.springframework.boot <artifactId>spring-boot-...
5. **Entity**:实体类代表数据库中的表,通过@MappedSuperclass、@Entity、@Table等注解与数据库建立关联。 6. **Mapping**:映射文件或注解定义了对象与数据库表的对应关系,包括字段映射、主键生成策略、关联...
批注是一种使用元数据修饰Java源代码的方法,它们会被添加到相应的Java类文件中,以便在运行时由JPA持久性提供程序解析以管理JPA行为。 #### 四、JPA注解详细解释 ##### 1. **实体注解** - **@Entity**:标记一个...
抽象实体是继承自@MappedSuperclass注解的实体,包含了公共的字段和方法。在本例中,抽象实体AbstractMappedType包含了id和name两个字段,分别对应了id和name两个列。 建立17/18年表对应的实体 建立17年和18年表...